python实例方法、类方法@classmethod、静态方法@staticmethod和属性方法@property区别
2019-03-06 15:35
302 查看
1、#类方法@classmethod,只能访问类变量,不能访问实例变量,通过cls参数传递当前类对象,不需要实例化,直接【类名.方法名()】,可通过类对象和类对象实例访问
类方法:第一个参数强制为类对象,可以通过这个类对象访问类属性,由于没有传入类实例对象,所以不能访问类实例属性。
2、#静态方法@staticmethod,名义归类管,实际跟类没关系,跟类关联截断了,是类下单独的函数,可以不传递任何参数,不需要实例化,直接【类名.方法名(),可通过类对象和类对象实例访问
类静态方法:无法访问类属性、类实例属性、没有默认的第一个参数,其实跟类没什么关系,只是绑定在类命名空间下的函数而已。
3、#实例方法,一般类下未带修饰符@是实例方法,需要实例化后调用
类实例方法:第一个参数强制为类实例对象,可以通过这个类实例对象访问类属性,可以通过类实例对象的
__class__属性访问类属性。
[code] class DemoClass(object): name='橙子' def __init__(self,name): self.name=name def objPrint(self,other):#实例方法 print("%s 是实例化方法:%s"%(self.name,other)) @classmethod def classPrint(cls,other):#类方法 print('%s 是类方法,只能调类变量 %s'%(cls.name,other)) @staticmethod def staticPrint(other):#静态方法 print('我是静态方法 %s'%other) obj=DemoClass("橙汁")#实例化类 obj.objPrint("啦啦") DemoClass.classPrint('傻傻') DemoClass.staticPrint('静静') C:\Users\wangli\PycharmProjects\AutoMation\venv\Scripts\python.exe C:/Users/wangli/PycharmProjects/AutoMation/case/test.py 橙汁 是实例化方法:啦啦 橙子 是类方法,只能调类变量 傻傻 我是静态方法 静静 Process finished with exit code 0
4、#属性方法@property,将类方法变为属性,并赋值
[code]class test(object): def __init__(self,name): self.name=name self.__food=None @property def wangli(self):#属性方法 方法改属性 print('%s is eating %s'%(self.name,self.__food)) @wangli.setter def wangli(self,food):#属性赋值 print('set to food:',food) self.__food=food a=test('花花') a.wangli a.wangli='包子' a.wangli C:\Users\wangli\PycharmProjects\AutoMation\venv\Scripts\python.exe C:/Users/wangli/PycharmProjects/AutoMation/case/test.py 花花 is eating None set to food: 包子 花花 is eating 包子 Process finished with exit code 0
相关文章推荐
- python-静态方法staticmethod、类方法classmethod、属性方法property
- python-静态方法staticmethod、类方法classmethod、属性方法property
- python中7种实现单例模式的方法:staticmethod、classmethod、类属性方法、__new__、装饰器、元类、名字覆盖
- python中 classmethod、staticmethod和普通方法的区别
- Python的实例方法,类方法,静态方法之间的区别及调用关系
- 类的学习笔记(5)——静态方法、类方法、实例方法及属性方法的区别
- Python:类属性,实例属性,私有属性与静态方法,类方法,实例方法
- python 中 @classmethod 、staticmethod 和 普通方法 的区别
- 类方法、实例方法、静态方法的使用方式及区别Python中
- Python:类属性,实例属性,私有属性与静态方法,类方法,实例方法 属性分为实例属性与类属性 方法分为普通方法,类方法,静态方法 一:属性: 尽量把需要用户传入的属性作为实例属性,而
- Python中staticmethod方法和classmethod方法区别
- Python中实例方法,静态方法,类方法的区别详解
- Python 中类方法、类实例方法、静态方法有何区别,Python 函数调用的时候参数的传递方式是值传递还是引用传递,*args,**kwargs
- Python:类属性,实例属性,私有属性与静态方法,类方法,实例方法
- python中类方法、类实例方法、静态方法的使用与区别
- 【Python】实例方法、类方法、静态方法之间区别(转)
- python中实例方法、类方法、静态方法的区别
- python的静态方法以及@staticmethod或@classmethod的区别
- python中类方法、类实例方法、静态方法的使用与区别
- Python:类属性,实例属性,私有属性与静态方法,类方法,实例方法