在 Python 中使用类时,您可能会遇到需要从方法内访问类变量的情况。但是,仅在方法中引用变量可能会导致名称错误。
问题
考虑以下代码片段:
<code class="python">class Foo(object): bar = 1 def bah(self): print(bar)</code>
当尝试运行此代码时,您将遇到 NameError: 全局名称“bar”未定义。这是因为变量 bar 是类变量,方法 bah 无法直接访问它。
解决方案
要在方法中访问类变量,有两个选项:
如果您打算修改类变量,请使用 Foo.bar;否则,使用 self.bar。
示例
使用正确的方法重构代码片段:
<code class="python">class Foo(object): bar = 1 def bah(self): print(self.bar) # Access the instance variable f = Foo() f.bah() # Prints 1</code>
此代码将打印 1,访问实例变量。如果您想访问类变量,只需在 print 语句中将 self.bar 更改为 Foo.bar 即可。
以上是如何从 Python 中的方法访问类变量?的详细内容。更多信息请关注PHP中文网其他相关文章!