@runzhliu
2018-02-22T01:41:00.000000Z
字数 536
阅读 800
Python
property
参考资料
Effective Python
在面向对象的编程语言中,经常需要在类中定义各种属性的获取器和设置器。以下代码是利用 Python 实现的具有获取和设置器的类。
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
属性开始写起。