我有一個類MyLib中與變量x。我不在課堂外使用這個變量,但是我從包裏的另一個課程開始設置它。我想知道什麼是將值設置爲下面的變量x的首選方法。 我應該直接設置它爲顯示在下面的代碼段或 應創建@property和@ x.setter函數來設置它。使用@屬性與存取變量直接
class MyLib:
def __init__(self, *args, **kwargs)
self._x = None
def func_to_process_x():
# do something
class UseLib:
self._x = 'ABC'
注意:這個問題不關於使用屬性而不是getter和setter。相反,我想知道,如果我們可以直接使用變量,那麼最好使用屬性/ getter/setter,因爲在Python中什麼都不是私有的。 而且是推薦使用,即使屬性時,我不是在@x.setter
功能從簡單的分配值的變量做任何事情分開。基本上想知道屬性的開銷是否值得以封裝的名義(儘管它不是純粹意義上的封裝,因爲沒有什麼是私有的,請糾正我,如果我在這裏是錯誤的)
@ Rvdk。感謝您的鏈接。但是這個問題更多地討論了屬性與吸氣和吸氣的關係。我更關心直接訪問變量,而不是使用屬性或getattr/setattr或任何其他自定義getters/setters – rdp
我仍在等待這一個答案。蟒蛇專家請貢獻? – rdp