Python——class的基础知识(Python的实例方法,类方法,静态方法之间的区别及调用关系)
来源:互联网 发布:loveless world知乎 编辑:程序博客网 时间:2024/06/06 13:05
如果只看这个图,很多人可能会看的一头雾水,特别是学过完全面向对象语言的同学, Python 是双面向的,既可以面向函数编程,也可以面向对象编程,所谓面向函数就是单独一个. py 文件,里面没有类,全是一些函数,调用的时候导入模块,通过模块名.函数名()即可调用,完全不需要类,那么你可能会问,那要类还有什么毛用? 类就是用来面向对象编程啦,类可以有自己的属性,类可以创建很多实例,每个实例可以有不同的属性,这也就保存了很多私有的数据,总之都有存在的必要.
再来看上面这张图,在类里面定义的函数就是方法,类方法需要@ classmethod 修饰并且有个隐藏参数 cls,实例方法必须有个参数 self, 静态方法必须有 @staticmethod修饰,类和实例都可以访问静态方法,实例可以访问实例方法也可以访问类方法,类可以访问类方法也可以访问实例方法,访问实例方法必须要带参数 self, 可以理解为类其实也是一个实例,类访问实例方法不带参数会报错的.类本身可以访问函数,实例却不行.
总结:类的属性:公有属性;(没有两个下划线开始)
私有属性;(函数、方法或属性的名字以两个下划线开始)
实例属性;(以self作为前缀的属性,没有self作为前缀声明的,则该变量只是普通的局部变量;即一个对象对应一个);
静态属性;(静态变量,可以被类直接调用,也可被实例化对象调用;可以被多个实例化对象共享;)
类的内置方法:方法名是由前后两个下划线加字母组成。比如:__init__(self):
staticmethod()或@staticmethod 指令的方式把普通的函数转换为静态方法。
是否有一个self参数,是区别方法和函数的标志;
类方法的作用和静态方法相似,都可以被其他实例对象共享。不同的是类方法必须提供self参数。类方法使用classmethod()或“@classmethod”指令定义。静态方法可以没有self参数。
Python支持多继承。
- Python——class的基础知识(Python的实例方法,类方法,静态方法之间的区别及调用关系)
- Python的实例方法,类方法,静态方法之间的区别及调用关系
- Python的实例方法,类方法,静态方法之间的区别及调用关系
- Python的实例方法,类方法,静态方法之间的区别及调用关系
- Python的实例方法,类方法,静态方法之间的区别及调用关系
- Python的实例方法,类方法,静态方法之间的区别及调用关系
- Python2.7 以及 Python 3.5的实例方法,类方法,静态方法之间的区别及调用关系
- Python类中实例方法、类方法及静态方法的调用区别
- Python Class 的实例方法/类方法/静态方法
- Python的类方法,静态方法,实例方法的区别
- Python的类方法,静态方法,实例方法的区别
- python类方法,实例方法,静态方法的区别
- python中实例方法、类方法、静态方法的区别
- Python中类、实例、方法之间的关系
- Python中类、实例和类方法、静态方法、实例方法的关系
- python 类的实例方法,静态方法,类方法辨析
- Python中静态方法 类方法 实例方法的不同
- Python的类方法、静态方法和实例化方法
- Hibernate,Spring管理获取事务里的Session
- echarts3的简单实践(饼图、柱形图、折线图、地图+散点图)
- Hibernate中对象的三种状态及相互转化
- iOS常用的开发工具
- Go panic, defer, recover 的异常处理
- Python——class的基础知识(Python的实例方法,类方法,静态方法之间的区别及调用关系)
- 15 反射与动态执行
- 如何让CListCtrl选中行恒保持其蓝色高亮状态?
- MySQL事务隔离级别
- 16 Macros
- IllegalArgumentException occured : Parameter value [camera]was not matching type [java.lang.Double]
- 二分图的最大匹配(匈牙利算法)
- 17 Creating Languages
- 如何从零开始搭建个人博客(pages+hexo)