Python_静态属性,类方法,静态方法
发布时间:2020-12-20 11:01:22 所属栏目:Python 来源:网络整理
导读:静态属性:把方法变成像属性一样调用 未使用静态属性的: class House: owner = " James " def __init__ (self,name,width,length,heigh): self.name = name self.width = width self.length = length self.heigh = heigh def cal_area(self): return (self.
静态属性:把方法变成像属性一样调用未使用静态属性的: class House: owner = "James" def __init__(self,name,width,length,heigh): self.name = name self.width = width self.length = length self.heigh = heigh def cal_area(self): return (self.width * self.length) toilet = House("厕所",90,200) print(toilet.cal_area()) print(toilet.owner) ? 使用静态属性后: class House: owner = "James" def __init__(self,heigh): self.name = name self.width = width self.length = length self.heigh = heigh #有点像装饰器? @property def cal_area(self): return (self.width * self.length) toilet = House("厕所",200) #不同就在于我不用执行方法了,cal_area就像是一个可以直接调用的属性,好处:隐藏了调用的方法逻辑 print(toilet.cal_area) print(toilet.owner) ? 类方法:不用实例化就可以执行类的方法class House: owner = "James" def __init__(self,heigh): self.name = name self.width = width self.length = length self.heigh = heigh #不用实例,就可用类本身去调用的方法,就叫类方法 @classmethod def cal_area(self,info): return ("%s" %info) print(House.cal_area("随便写点什么嗯嗯")) ? 静态方法:名义上的归属类管理,类的工具包, 不能使用类变量和实例变量 class House: owner = "James" def __init__(self,heigh): self.name = name self.width = width self.length = length self.heigh = heigh @staticmethod def wash_house(a,b,c): print(a+b+c) #就像是一个普通的方法调用,没有默认的实例变量或者是类方法中的类变量 House.wash_house(1,2,3) # yangtai = House("阳台",8,10,20) #实例会多出一个yangtai本身的参数,会报错(没报,可能是python版本问题) yangtai.wash_house(1,3) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |