修饰符

python修饰符

内置的修饰符有三个,分别是 staticmethod、classmethod 和 property,作用分别是把类中定义的实例方法变成静态方法、类方法和类属性。

class B:
    def foo(cls):  # cls主要用在类方法定义
        print("调用类方法foo()")

        #将foo设置为类方法
        foo = classmethod(foo)

等价于

class B:
    @classmethod
    def foo(cls):
        print("调用类方法foo()")

其实 Python 的修饰符就是一种优雅的封装,但要注意的是只可以在模块或类定义内对函数进行修饰,不允许修饰一个类。

一个修饰符就是一个函数,它将被修饰的函数做为参数,并返回修饰后的同名函数或其它可调用的东西。

看下面的例子

@something
def f():
    print("I love you")

相当于

def f():
    print("I love you")    
f = something(f)

使用修饰符实现和property一样的功能

我们还可以用修饰符实现和property一样的功能,代码实现如下:

class C:
    def __init__(self, size = 10):
        self.size = size

    def getSize(self):
        return self.size

    def setSize(self, value):
        self.size = value

    def delSize(self):
        del self.size

    x = property(getSize, setSize, delSize)

用修饰符实现结果

class C:
    def __init__(self, size = 10):
        self.size = size

    @property
    def x(self):
        return self.size
    @x.setter
    def x(self, value):
        self.size = value
    @x.deleter
    def x(self):
        del self.size
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Einstellung

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值