我想在函数中定义一个类(用于测试目的(,并将值放入一个函数变量:
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)
我还没有测试过上面的代码,但理论上它应该可以工作。