类的静态属性:通常可以让实例化对象以数据属性的形式来调用定义的特定方法(比如用来计算面积、体积等 通常与类的数据属性绑定self)
用关键字 @property 来修饰
类方法:通常与类的信息相绑定(cls),可以用类来调用方法和自己的属性 ,不一定非要实例化一个对象来实现
用关键字 @classmethod 来修饰
静态方法:不与数据属性或者函数方法任一绑定,支持参数的自定义选择,作为类的工具包来使用,
可以使用类名或者实例化对象来调用,与普通方法相比,若为普通函数,则实例化对象无法直接调用该函数(对象默认就是一个字典存储属性了)
用关键字 @cstaticmethod 来修饰
1 class Romm:
2
3 language='python'
4 def __init__(self,length,width,heigh,name,addre):
5 self.chang=length
6 self.kuan=width
7 self.gao=heigh
8 self.yezhu=name
9 self.dizhi=addre
10
11 @property
12 def ti_ji(self):
13 # print(self.chang*self.kuan*self.gao )
14 return self.chang*self.kuan*self.gao
15
16 def xing_xi(self):
17 print('这是%s的%s长是%s宽是%s高是%s'%(self.yezhu,self.dizhi,self.chang,self.kuan,self.gao))
18
19 @classmethod
20 def speak(cls,name):
21 print('hello everyone %s'%cls.language,name)
22
23 @staticmethod
24 def show(name):
25 print('%s :NO one can achieve anything without effort! '%name)
26
27 r1=Romm(10,10,5,'小明','私人单元')
28 r1.xing_xi()
29 print(r1.ti_ji)
30 Romm.speak('Dingest')
31 r1.show('eds')
32 Romm.show('strfen')