静态属性
静态属性就是数据属性,在函数属性上加装饰器@property,感官会认为是把函数属性转化成数据属性,运用类函数方法不需要加()
封装:把背后的操作逻辑隐藏起来,跟实例绑定
class Hhj: def __init__(self,name,age,face): self.name=name self.age=age self.face=face @property def test(self): print(‘我是%s 年纪是%s 长得%s‘ %(self.name,self.age,self.face)) r1=Hhj("林南",29,"帅") r1.test
静态属性示例
类方法
不通过任何实例,只执行类的方法,不跟任何实例捆绑,只跟类捆绑,就是类方法。用@classmethod装饰器,实例与类的区分。
类名加类方法自动传递第一个参数,跟实例没有任何关系,只是类级别操作,类调用自己的方法。实例也能调用,调用的是自己所属的类,但不能访问实例属性。
函数属性就是方法功能
class Hhj: def __init__(self,name,age,face): self.name=name self.age=age self.face=face name=[‘林南‘,29,‘帅‘] @classmethod def test(cls): print(‘我是%s 年纪是%s 长得%s‘ %(cls.name[0],cls.name[1],cls.name[2])) r1=Hhj("林南",29,"帅") Hhj.test() r1.test()
类方法示例
静态方法
@staticmethod,类的工具包,不跟类绑定也不跟实例绑定
直接定义 def test(x,y)
print(x,y) 实例无法调用
@staticmethod 静态方法只是名义上的归属类管理,不能使用类变量和实例变量,是类的工具包
class Chinese: dang="元" def sui_di_tu_tan(self): print("朝墙上吐了一口痰") def __init__(self,name,age,gentle): self.a=name self.b=age self.c=gentle def chadui(self): print(‘插队到前面‘) @staticmethod def test(x,y): print(x,y) # r1=Chinese("林南","29","男") # r1.sui_di_tu_tan() # r1.test(1,2) Chinese.test(2,9)
静态方法示例
小结
静态属性:把函数封装成一个数据属性的形式,外部调用看不见内部的逻辑,感受不到内部逻辑,静态属性既可以访问实例属性,又可以访问类属性,可以传递参数self
类方法:可以访问类的属性,不能访问实例的属性
静态方法:不能访问类属性,也不能访问实例属性
原文地址:https://www.cnblogs.com/jintian/p/10916365.html
时间: 2024-10-10 19:18:40