我正在尝试制作一个能够从函数外部访问变量的函数。但是,此变量需要在类中定义。为了清楚起见,我将定义一个简化的功能,以简化我在代码中要做的事情。
class Stuff():
def __init__(self):
print("Initialized")
def forward(self,x):
y=4
x=func(x)
return x
def func(x):
global y
return x+y
stuff = Stuff()
print(stuff.forward(4))
因此,我试图使func(x)使用“转发”方法中定义的y,但是当我运行此代码时,出现错误“未定义全局名称y”。任何帮助深表感谢。
答案 0 :(得分:3)
不能。 member 变量属于类的特定实例。您必须知道实例才能执行此操作,因此最好也将y
传递给函数。
您可以做相反的事情。在global
函数中使用forward
来定义全局y
变量,然后从func
访问它。但是,不要。总是不好的做法。将y
传递给func。