爲什麼 - 或者爲什麼不 - 在Python OOP中專門使用getter和setter是一個好習慣?爲什麼(或者不是)在Python OOP中使用Getters/Accessors?
我的教科書指出以下:
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在Python OOP中使用。
我試過閱讀其他地方,但我還沒有找到一個很好的解釋任何地方。在所以大多數的答案是關於Java和我讀過,這是不相關的Python的 ...
是否有人可以幫助我瞭解爲什麼它是使用它們好的做法呢?如果不是,爲什麼不呢?
它*不是很好的做法,實際上。它在Java中,但不在Python中。 –
我猜測作者對Python並不是很熟悉。事實恰恰相反。 –
請不要關閉。接近的選票提到了一般的面向對象問題。有幾個答案提到了Python,但我認爲這個問題的Python特定版本是有效的。 –