面向对象的属性与方法

类的静态属性:通常可以让实例化对象以数据属性的形式来调用定义的特定方法(比如用来计算面积、体积等 通常与类的数据属性绑定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')

猜你喜欢

转载自www.cnblogs.com/wen-kang/p/9233883.html