在嘗試存取方法中的靜態類別變數時遇到「NameError」時,有必要調整語法。以下是如何有效地做到這一點:
在給定代碼的上下文中:
<code class="python">class Foo(object): bar = 1 def bah(self): print(bar) f = Foo() f.bah()</code>
發生錯誤是因為“bar”在“bah”方法中作為全局變量訪問。要解決此問題,有兩個選項可用:
1。透過類別屬性(靜態變數)存取:
<code class="python">def bah(self): print(Foo.bar)</code>
此語法將「bar」作為類別「Foo」的靜態變數進行訪問,而不附加到特定實例。
2。透過實例屬性存取:
<code class="python">def bah(self): print(self.bar)</code>
此語法將「bar」作為方法內的實例變數進行存取。對「self.bar」的分配將為「Foo」的每個實例建立特定於實例的「bar」版本。
附加說明:
或者,設定類別屬性「self.bar」也會影響類別中的所有實例:
<code class="python">def bah(self): print(self.bar) self.bar = 2</code>
在在這種情況下,後續對其他實例呼叫“bah”將列印“2”,因為特定於實例的版本“bar”是即時建立的。
以上是以下是一些標題選項,請記住問題格式並專注於核心問題: 直接、清晰: * 如何在Python方法中存取靜態類別變數? * 為什麼我會得到一個的詳細內容。更多資訊請關注PHP中文網其他相關文章!