大江东去,浪淘尽,千古风流人物。故垒西边,人道是,三国周郎赤壁。乱石穿空,惊涛拍岸,卷起千堆雪。江山如画,一时多少豪杰。遥想公瑾当年,小乔初嫁了,雄姿英发。羽扇纶巾,谈笑间,樯橹灰飞烟灭。故国神游,多情应笑我,早生华发。人生如梦,一尊还酹江月。
返回顶部

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

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')

 

posted @ 2018-09-03 21:51  飞乐  阅读(153)  评论(0)    收藏  举报