python中的内置修饰符staticmethod、classmethod和property

Python当中内置的修饰符有三个,分别是staticmethod、classmethod和property,作用是分别把类中定义的实例方法变成静态方法、类方法和类属性。这三种修饰符在平常读代码的时候偶尔遇到,在此记录一下。

@property的作用是将类方法转为属性,直接通过方法名访问

class Animal():
    def __init__(self, mind):
        self._mind  =  mind
    @property
    def s_mind(self):
        return self._mind

an = Animal("gougou")

print(an.s_mind) #调用的时候可以不加括号

#注意使用以下方式赋值时会报错
an.s_ming = "maomao"

@classmethod 将对象方法转化为类方法,在类方法函数的参数上需要加上cls作为参数,但是在调用的时候不需要添加参数。

class Animal():
    bar = "wangwang"
    @classmethod
    def func1(cls, para):
        print(f"{para}:{cls.bar}")
        print(cls.__name__)
        print(type(cls))
    def func2(self):
        print("func2")

if __name__ == "__main__":
    Animal.func1("gougou")  #不需要实例化
    print(type(Animal))


#输出
gougou:wangwang
Animal
<class 'type'>
<class 'type'>

@staticmethod 将对象方法转化为静态方法,可以被类直接调用

class Animal(object):
    @staticmethod
    def func1():
        print("func1")
if __name__ == "__main__":
    Animal.func1()  #不需要实例化,函数的参数中不需要self

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值