加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读