如何使函数使用函数外部的变量,但使用类的方法

时间:2018-07-24 15:29:43

标签: python function class variables global

我正在尝试制作一个能够从函数外部访问变量的函数。但是,此变量需要在类中定义。为了清楚起见,我将定义一个简化的功能,以简化我在代码中要做的事情。

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

1 个答案:

答案 0 :(得分:3)

不能。 member 变量属于类的特定实例。您必须知道实例才能执行此操作,因此最好也将y传递给函数。

您可以做相反的事情。在global函数中使用forward来定义全局y变量,然后从func访问它。但是,不要。总是不好的做法。将y传递给func。