请参阅函数停止定位Python中定义的类



我想在函数中定义一个类(用于测试目的(,并将值放入一个函数变量:

def foo():
myvar = None
class myclass:
def run(self):
myvar = 5
mm = myclass()
mm.run()
print(myvar)

以上打印None

除了global之外,还有其他方法可以使myvar变量从类中访问吗?正确答案将打印5

如果没有global,就不可能为当前作用域之外的变量赋值。如果需要在类中持久化值,则可以定义类变量。示例:

def foo():
class Class:
var_to_change = None
def run (self):
self.var_to_change = 5
print (Class.var_to_change)
instance = Class()
instance.run()
print (Class.var_to_change)

我还没有测试过上面的代码,但理论上它应该可以工作。

最新更新