You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 07:15:02