12、Python面向对象编程:装饰器、属性应用与代码复用

Python面向对象编程:装饰器、属性应用与代码复用

1. 装饰器:创建属性的另一种方式

在Python 2.4中引入了装饰器,它可以通过将函数作为参数传递给其他函数来动态修改函数,最终返回一个新的函数。基本语法很容易掌握,只需在函数名前加上 @ 符号,并将其放在被装饰函数定义之前。

例如,使用 property 函数作为装饰器将一个获取函数转换为属性:

class Foo:
    @property
    def foo(self):
        return "bar"

上述代码等同于 foo = property(foo) ,但从可读性角度看,在方法顶部标记 foo 函数为属性,避免了在定义后标记可能被忽略的问题。

还可以为新属性指定设置器函数:

class Foo:
    @property
    def foo(self):
        return self._foo
    @foo.setter
    def foo(self, value):
        self._foo = value

这里先将 foo 方法装饰为获取器,再用原装饰后的 foo 方法的 setter 属性装饰一个同名的新方法。虽

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值