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

来源:互联网 发布:usb数据采集模块 编辑:程序博客网 时间:2024/06/05 02:38
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 xxprint(d.total) #22#属性传值,调用的 第二个方法total方法d.total=23 #total players: 22 属性传值print(d.total) #23#删除属性 total got deleted!del d.total#属性删除了,会报错print(d.total)
0 0
原创粉丝点击