如何使函数在函数外部使用变量,但在 class 的方法中

How to make a function use a variable outside the function, but in a method of a class

我正在尝试创建一个能够从函数外部访问变量的函数。但是,这个变量需要在class中定义。为了清楚起见,我将在代码中定义一个简化的函数。

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) 使用 "forward" 方法中定义的 y,但是当我 运行 这段代码时,我得到错误 "global name y is not defined"。任何帮助深表感谢。

你不能。 member 变量属于 class 的特定实例。你必须知道实例才能做到这一点,所以你最好也将 y 传递给你的函数。

你也可以反其道而行之。在forward函数中使用global定义一个全局y变量,然后从func访问它。但是,不要。这是不好的做法,总是。将 y 传递给 func。