从variable.py导入变量到file1.py运行出现报错的问题咨询
错误原因
你代码报错的核心原因是variable.py中的a、b变量仅在init()函数执行时才会被创建为模块全局属性,未调用init()时直接访问variable.a、variable.b找不到对应属性,PyCharm也会因此触发未定义属性的错误提示。
另外你当前贴出的file1.py中def someFunction():行存在多余的前置缩进,属于语法错误,需要先删除缩进保证函数定义顶格书写。
修复方案
- 方案1(最推荐):直接在
variable.py顶层定义变量,无需额外初始化逻辑
修改后variable.py代码:
# 这是我定义全局变量的文件 a = 3 b = 5
该方案无需修改file1.py原有逻辑,导入后即可直接使用变量,也不会触发PyCharm的错误提示。
- 方案2:如果必须保留
init()初始化逻辑,可先做变量声明再显式调用初始化
第一步修改variable.py,顶层提前声明变量占位:
# 这是我定义全局变量的文件 # 顶层声明变量,避免未定义报错 a = None b = None def init(): global a a = 3 global b b = 5
第二步修改file1.py,导入模块后先调用初始化函数:
import variable # 导入后立即执行初始化 variable.init() def someFunction(): c = variable.a + variable.b print(c)
内容的提问来源于stack exchange,提问作者Maulik
相关产品推荐
相关产品推荐

