Python导入config.py无法引用变量,多变量场景如何处理?
Python配置文件多变量引用问题解决方案
问题重现
在config.py中定义变量:
# config.py white = (255,255,255) black = (0,0,0) red = (255,0,0)
在main.py中直接引用变量触发NameError:
# main.py import config print(white)
报错信息:
Traceback (most recent call last): File "C:\...\Test\Test2.py", line 2, in <module> print(white) NameError: name 'white' is not defined
报错原因:导入模块后,变量属于模块的独立命名空间,而非当前脚本的全局命名空间,直接使用变量名无法识别。
多变量场景解决方案
方案1:逐个指定导入变量(推荐)
明确导入需要的变量,可直接在脚本中使用变量名:
# main.py from config import white, black, red print(white) print(black)
方案2:批量导入所有变量(慎用)
一次性导入模块内所有变量,适合变量数量少且无命名冲突的场景:
# main.py from config import * print(white) print(red)
⚠️ 注意:如果当前脚本存在同名变量会被覆盖,大型项目不建议使用该方式。
方案3:保留模块命名空间引用(最安全)
直接通过模块名访问变量,无需额外赋值,多变量场景下逻辑清晰、避免冲突:
# main.py import config print(config.white) print(config.black)
内容的提问来源于stack exchange,提问作者user9060784
相关产品推荐
相关产品推荐

