首页 > 解决方案 > 如何从 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()

标签: pythonpython-3.xglobal-variables

解决方案


if __name__ == "__main__":python3 filename.py意味着它后面的代码只有在从命令行显式调用文件时才会执行。由于您只是导入文件而不执行它,因此global永远不会设置变量。

此外,python 变量在函数外部声明时都是“全局”变量,并且仅当您要在函数内部global声明全局变量时才需要关键字。

要解决此问题,请更改a.py为以下内容:

requests = {}

def set_vale():
    requests["1"] = "1"

set_vale()

推荐阅读