静态属性、类方法、静态方法

class Room:
    tag=1
    def __init__(self,name,owner,width,length,heigh):
        self.name=name
        self.width=width
        self.owner=owner
        self.length=length
        self.heigh=heigh

 

1、静态属性

既可以访问类自己的属性也可以访问实例自己的属性

    @property
    def cal_area(self):
        # print('%s 住的 %s 总面积是 %s'%(self.owner,self.name,self.width*self.length))
        return self.width*self.length
r1=Room('厕所','alex',100,100,10000)
#像类一样访问自己的属性,所调用的函数不用加()
print(r1.cal_area)

2、类方法

访问不到实例的属性,主要是给类用的

    @classmethod#(给类用的)
    def tell_info(cls,x):#cls参数接收的是类名,类名自动传入第一个参数
        print(cls)
        print('---->',cls.tag,x)#print('---->',Room.tag)
    # def tell_info(self):
    #     print('----->',self.tag)
Room.tell_info(10)

3、静态方法

不能访问类属性和实例属性,只是类的工具包

    @staticmethod
    def wash_body(a,b,c):
        print('%s %s %s正在洗澡'%(a,b,c))

Room.wash_body('alex','yuanhao','wupeiqi')

r1=Room('公共厕所','yuanhao',1,1,10000)#实例(对象)只有数据属性没有函数属性(用于调类的函数属性)
r1.wash_body('alex','yuanhao','wupeiqi')
原文地址:https://www.cnblogs.com/happyfei/p/9581268.html