首页 > 解决方案 > 如何使函数在函数外部使用变量,但在类的方法中

问题描述

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

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 未定义”。任何帮助深表感谢。

标签: pythonfunctionclassvariablesglobal

解决方案


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

你可以做相反的事情。global在函数中使用forward来定义一个全局y变量,然后从func. 但是,不要。这是不好的做法,总是。y改为传递给 func 。


推荐阅读