首页 > 解决方案 > python中的class_variable和instance_variable

问题描述

class A:
    x=10
    def fn(self):
        print(x)

我尝试运行此代码,但出现以下错误:

NameError: name 'x' is not defined

如果我把 self.x 放在功能块里面,那么它工作得很好我怀疑为什么上面的代码不能正常工作 x 是在类范围内定义的,所以它不应该被类中定义为 class_variable 的所有函数访问

标签: python-3.xclassoopexceptionnameerror

解决方案


在类内部它是一个局部变量,您可以将其分配给类的属性并获取它:

class A:
  def __init__(self):
    x=10
    self.x = x
    def fn(self):
      print(self.x)

推荐阅读