类 静态方法,属性,类方法

class Animal:
    def __init__(self,name,num):
        self.name=name #实例的属性
        self.num=num#实例的属性

    has_animal='long'
    @classmethod #类方法,不能访问实例属性,里面不能写self.name 这是实例属性
    def talk(self):
        print("%s is talking" % self.has_animal)
      #这是错误的  print("%s is talking" % self.name)

    @staticmethod #静态方法 没有传参数,索引外面也不能传参数
    def walk():
        print( "xx is walk" )
    @staticmethod
    def walking(self):
        print("%s is walking" % self.name)

    @property #实例属性
    def habbit(self):
        return ("%s habit is xx" % self.name)

    @property
    def total(self):
        return self.num

    @total.setter #属性传值
    def total(self,num):
        self.num=num
        print('total players:',self.num)

    @total.deleter #删除属性
    def total(self):
        print("total got deleted!")
        del self.num
d = Animal('laowang','22')
e = Animal('xiaoren','20')
Animal.talk() #long is talking 类方法
d.walk()# xx is walk 静态方法 walk()没有传self 所以 这里也不能传参数
Animal.walk() # xx is walk 静态方法
d.walking(e)# xiaoren is walking 静态方法 walking(self) 将实例化的对象传入了,所以这里要传参数

#属性
print(d.habbit) #laowang habit is xx
print(d.total) #22
#属性传值,调用的 第二个方法total方法
d.total=23 #total players: 22 属性传值
print(d.total) #23

#删除属性 total got deleted!
del d.total
#属性删除了,会报错
print(d.total)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值