python - 从模块访问全局变量?
问题描述
让我们从使用全局变量的基本代码开始:
def fun():
print(gvar)
gvar = 3
fun()
那当然会在控制台中打印“3”。
然后,我将我的函数“fun”移动到模块“mymod”中,然后执行以下操作:
from mymod import *
gvar=3
fun()
结果是 NameError 异常(gvar
未找到)
我该如何解决这个问题?不得不提一下,我需要访问各种名称并不总是相同的全局变量(上下文很复杂,我现在不描述它以专注于我现在遇到的问题)
解决方案
python 唯一的全局变量是模块范围的。因此,在您的情况下,该变量gvar
在模块中不可见mymod
。
如果要gvar
在导入的模块中使用,请将其gvar
作为参数传递给mymod
. 如果gvar
属于mymod
,则在此处定义。
推荐阅读
- c++ - #define VMA_IMPLEMENTATION 之后的 Vulkan 内存分配器实现错误
- docker - 无法验证证书 - 不包含任何 IP SAN
- api - 我正在尝试为股票代码“AAPL”构建数据字典但是我遇到了这个错误消息 HTTPError:HTTP 错误 400:
- reactjs - 是否可以将代码移到功能组件之外?
- php - 如何将 JSON 数据转换为数组?
- javascript - 在 FlatList 中渲染空单元格/分隔符
- go - Go 自定义错误处理错误界面报告结果到实际错误?
- python - 使用 Keras 训练字符模型的 InvalidArgumentError
- memory - 发送到 GPU 的变量是否会在超出范围时自动从 GPU 内存中删除?
- compilation - 如何使用 cov-build 工具构建 Juliet 测试套件以通过 GitHub 进行分析