python - 如何从 python 中的另一个 .py 文件访问全局变量?
问题描述
我创建了两个文件,当我运行时a.py
,结果是{'1': '1'}
,它是正确的。然而,运行b.py
,结果是没有。我怎样才能得到请求的价值b.py
?
一个.py:
requests = {}
def set_value():
global requests
requests["1"] = "1"
if __name__ == "__main__":
set_value()
print(requests)
b.py:
import a
def get_value():
print(a.requests)
if __name__ == "__main__":
get_value()
解决方案
if __name__ == "__main__":
python3 filename.py
意味着它后面的代码只有在从命令行显式调用文件时才会执行。由于您只是导入文件而不执行它,因此global
永远不会设置变量。
此外,python 变量在函数外部声明时都是“全局”变量,并且仅当您要在函数内部global
声明全局变量时才需要关键字。
要解决此问题,请更改a.py
为以下内容:
requests = {}
def set_vale():
requests["1"] = "1"
set_vale()
推荐阅读
- python - 如何获取 jinja 2 模板文件中所有变量的列表
- arduino-esp8266 - 从 ESP8266WebServer 库中的 server.arg() 函数获取 HEX 数据
- java - 分享图片不来
- angular - 目标入口点“@pebula/ngrid”缺少依赖项:@angular/cdk-experimental/scrolling
- node.js - Post 方法值在节点 js 中返回 null
- java - 基于泛型类型创建新对象
- javascript - 等高列商店页面(图片、标题、价格等)
- odbc - 苹果 M1 上用于 SQL Server 的 ODBC 驱动程序 17
- mysql - 当连接表中不存在相关行时如何显示空列或空列
- django - TemplateSyntaxError at / 第 57 行的块标记无效:'logout_url',预期为 'endif'。您是否忘记注册或加载此标签?