可能重複:
What is the benefit to using a ‘get function’ for a python class?python:爲什麼getter&setter?我如何快速設置屬性?
我剛開始讀Python,但我不知道爲什麼Python的需要setter和getter呢?它已經具有像財產
考慮
class C(object):
def _init_(self):
self._x = None
def get_x(self):
return self._x
def set_x(self, value):
self._x = valu
x = property(get_x, set_x)
我們能不能用C.x =「值」做什麼,我們要在這裏做對象變量?財產有什麼好處?
順便說一句,以這種方式創建屬性/ setter/getter對我來說很麻煩,有什麼方法可以簡化它嗎?像
class C()
has_attributes("x", "y", "z")
你不需要Python中的getter和setter。 –
除了brenbarn發佈什麼,考慮[Python @property與getters和setters](http://stackoverflow.com/questions/6618002/python-property-versus-getters-and-setters) –
還請注意,你可能想要爲了*不*初始化'self._x'到'None',以便在設置之前捕獲嘗試訪問它的代碼的問題。在這種情況下,你可能甚至不需要定義'__init __()'。 – EOL