python - 如何使函数在函数外部使用变量,但在类的方法中
问题描述
我正在尝试创建一个能够从函数外部访问变量的函数。但是,这个变量需要在一个类中定义。为了清楚起见,我将在代码中定义一个简化的函数。
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 未定义”。任何帮助深表感谢。
解决方案
你不能。成员变量属于类的特定实例。你必须知道实例才能做到这一点,所以你最好也传递y
给你的函数。
你可以做相反的事情。global
在函数中使用forward
来定义一个全局y
变量,然后从func
. 但是,不要。这是不好的做法,总是。y
改为传递给 func 。
推荐阅读
- c# - Xamarin 通过图像获取 ResourceId
- django - 在单独的域上配置一个 django 应用程序并依赖于其他应用程序,并且需要在应用程序之间共享数据
- python - 将整个段落与单词条件匹配的正则表达式是什么?(段落可能包含多个句点/句号)
- android - 用键盘打开片段
- python - 安装 Mysql 时启动 DJango 服务器出错
- c# - 自定义 switch-case 作为 foreach 的替代方案
- reactjs - Next.JS & JEST - publicRuntimeConfig 未定义
- python - 线性回归的极限斜率
- angular - NullInjectorError:没有 HighContrastModeDetector 的提供程序
- r - 如何在R中按顺序有条件地标记行?