参见英文答案 >
Why use getters and setters/accessors? [closed] 38个
为什么 – 或者为什么不 – 在Python OOP中专门使用getter和setter是一种好习惯?
我的教科书陈述如下:
import random
class Die(object):
"""Simulate a generic die."""
def __init__(self):
self.sides = 6
self.roll()
def roll(self):
"""Updates the die with a random roll."""
self.value = 1+random.randrange(self.sides)
return self.value
def getValue(self):
"""Return the last value set by roll()."""
return self.value
def main():
d1,d2 = Die(),Die()
for n in range(12):
print d1.roll(),d2.roll()
main()
getValue()方法(称为getter或访问器)返回值实例变量的值.
为什么要写这种功能?为什么不简单地使用实例变量?我们将在本章末尾的常见问题解答中解决这个问题.
但是,本章末尾没有FAQ,因此从未解释为什么在Python OOP中使用getter.
我曾尝试阅读其他地方,但我在任何地方都找不到好的解释.关于SO的大多数答案都是关于Java的,我读过它与Python无关……
有人可以帮助我理解为什么使用它们是好的做法?或者如果没有,为什么不呢?