静态属性,类方法

1、类对象:类名 实例对象:由类创建的对象
2、静态属性(和实例有关,可以访问实例属性和类的属性)(将类的函数属性封装成 数据属性的形式,让外界无法知道你的内部逻辑)

class Room:
    def __init__(self,name,width,length):
        self.name = name
        self.width = width
        self.length = length

    @property
    def cal_area(self):
        #print('%s 家的面积为 %s'%(self.name,self.width*self.length))
        return self.width*self.length

s1 = Room('aaa',20,20)
s2 = Room('bbb',30,30)
#正常调用
# print(s1.cal_area())
# print(s2.cal_area())
#加 @property 调用
print(s1.cal_area)       #--->此刻封装成 数据属性的形式,外界无法知道你的内部逻辑
print(s2.cal_area)

类方法(和类有关,可以让类调用其函数属性而不用传 self实例,无法访问实例属性)

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

    #定义类方法,为了可以让类调用其函数属性而不用传 self实例,实例正常调用
    @classmethod
    def tell_info(cls,x):
        print(cls)
        print('--->>',cls.tag,x)
#调用类变量
print(Room.tag)
#一般调用函数属性
# r1 = Room('abc',10,10)
# Room.tell_info(r1,'bbb')

#加 @classmethod 直接用类调用其函数属性
Room.tell_info('aaa')

静态方法(与类和实例无关,是类的工具包,和正常函数差不多,只不过名义上归属类管理,可以使用类名进行访问)

class Room:
    def __init__(self):
        pass

    @staticmethod
    def test(a,b,c):
        print('%s 和 %s 一起 %s'%(a,b,c))

Room.test('aa','bb','play')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值