在尝试访问方法中的静态类变量时遇到“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中文网其他相关文章!