[英]Using self for property return in python class
我來自javascript背景,我認為這是我首先遇到這個問題的原因。
使用self來引用方法定義中的類的屬性時,有什么區別。
例如
class Foo:
_bar = 15;
def getBar(self):
return self._bar;
與
class Foo:
_bar = 15;
def getBar(self):
return _bar;
我想我可以通過說出引用類內屬性時使用self的作用來改寫這個問題。 IE如果由於某種奇怪的原因,我想在getBar()內返回一個全局_bar變量呢?
您的第二個代碼不返回class屬性。 它將返回全局_bar
如果存在),否則將引發NameError
異常。 這是因為不會自動從方法中查找類范圍-查找變量時僅查找函數范圍和全局范圍。
您可以使用return Foo._bar
或return self._bar
返回一個類屬性(即在所有實例之間共享的屬性)。
要返回實例屬性,您需要return self._bar
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.