python-面向对象(绑定方法与非绑定方法)
一、绑定方法:
绑定给谁就应该由谁来调用,谁来调用就会将谁当做第一个参数传入
1.绑定给对象的方法:类中定义的函数默认就是绑定给对象的
2.绑定给类的方法:为类中定义的函数加上一个装饰器classmethod
二、非绑定方法:
即不与类绑定,又不与对象绑定,意味着对象和类都可以来调用,无论谁来调用都是一个普通函数,没有自动传值的效果
import settings class Mysql: def __init__(self,ip,port): self.ip = ip self.port = port self.id =self.create_id() def tell_info(self): print('id:%s,ip:%s port:%s'%(self.id,self.ip,self.port)) @classmethod def from_conf(cls): return cls(settings.ip,settings.port)#clx(ip,port) @staticmethod def create_id(): import uuid return uuid.uuid4() # obj = Mysql('1.2.3.4','3006') obj = Mysql.from_conf() obj.tell_info()
后期补全!
焚膏油以继晷,恒兀兀以穷年。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
线程安全(中)--彻底搞懂synchronized(从偏向锁到重量级锁)
接触过线程安全的同学想必都使用过synchronized这个关键字,在java同步代码快中,synchronized的使用方式无非有两个: 通过对一个对象进行加锁来实现同步,如下面代码。 synchronized(lockObject){ //代码 } 对一个方法进行synchronized声明,进而对一个方法进行加锁来实现同步。如下面代码 public synchornized void test(){ //代码 } 但这里需要指出的是,无论是对一个对象进行加锁还是对一个方法进行加锁,实际上,都是对对象进行加锁。 也就是说,对于方式2,实际上虚拟机会根据synchronized修饰的是实例方法还是类方法,去取对应的实例对象或者Class对象来进行加锁。 对于synchronized这个关键字,可能之前大家有听过,他是一个重量级锁,开销很大,建议大家少用点。但大家可能也听说过,但到了jdk1.6之后,该关键字被进行了很多的优化,已经不像以前那样不给力了,建议大家多使用。 那么它是进行了什么样的优化,才使得synchronized又深得人心呢?为何重量级锁开销就大呢? 想必大家也都听说过...
-
下一篇
基于ExoPlayer的ExoVideoView
前言 本人之前写过一篇名为基于ExoPlayer的ExoPlayerVideoView的文章,近日发现竟然被盗用了。 今日再次发布本文是因为ExoVideoView升级啦,新版的更好用,支持更多功能,支持自定义controller。特性 1.自动处理音频焦点。 2.根据传感器自动处理方向。 3.手势支持。 4.多清晰度选择支持。 5.为控制器添加自定义布局. 6.调整显示大小。 7.自定义controller。 使用 ExoVideoView 1.依赖 最简单的方式是加入gradle依赖。请确认在工程的build.gradle中添加了JCenter和google()。 repositories { jcenter() google() } 然后在你的项目中添加如下代码: implementation 'com.jarvanmo:exoplayerview:2.0.8' 2.在xml中定义 在xml中使用 ExoVideoView: <com.jarvanmo.exoplayerview.ui.ExoVideoView android:id="@+id/videoView" and...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- MySQL数据库在高并发下的优化方案
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8编译安装MySQL8.0.19