目录

Python的property

概述

在面向对象的编程语言中,经常需要在类中定义各种属性的获取器和设置器。以下代码是利用 Python 实现的具有获取和设置器的类。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
class OldResistor(object):
    def __init__(self, ohms):
        self.__ohms = ohms

    def get_ohms(self):
        return self.__ohms

    def set_ohms(self, ohms):
        self.__ohms = ohms


if __name__ == '__main__':
    r0 = OldResistor(50e3)
    print "Before: %5r", r0.get_ohms()
    r0.set_ohms(10e3)
    print "After: %5r", r0.get_ohms()

    r0.set_ohms(r0.get_ohms() + 5e3)
    print "SelfAdd: %5r", r0.get_ohms()

可以看到获取器和设置器会有个问题,就是做类似自增的操作的时候会非常不便利。而对于 Python 本身而言,基本上是不需要手工实现这些方法的,而是应该从简单的 public 属性开始写起。

参考资料

  1. Effective Python
警告
本文最后更新于 2017年2月1日,文中内容可能已过时,请谨慎参考。