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

如何在Python中从另一脚本的函数内导入变量?

问题原因

你遇到的AttributeError是因为:x是foo函数内部的局部变量,它仅在函数执行时存在于函数的内部作用域中,外部无法直接访问;同时你试图把foo这个函数对象当作带有属性的对象来访问foo.x,但函数本身并没有预先定义x这个属性,所以会报错。

解决方案

以下是几种可行的解决方式,你可以根据实际需求选择:

方案1:让函数返回变量,调用函数获取值

修改file2.py让函数返回x,在file1.py中调用函数拿到结果:

# file2.py
def foo():
    x = 7
    return x

# file1.py
from file2 import foo
def myfunc():
    x_value = foo()  # 调用函数获取返回的x值
    print(x_value)

myfunc()

方案2:将变量绑定为函数的属性

如果需要把x作为函数对象的属性,要先执行函数,在函数内部给自身绑定属性:

# file2.py
def foo():
    foo.x = 7  # 给函数对象foo绑定x属性

# file1.py
from file2 import foo
def myfunc():
    foo()  # 必须先执行函数,才能完成属性绑定
    print(foo.x)

myfunc()

方案3:改用模块级全局变量

如果x不需要依赖函数执行逻辑生成,直接把它定义为模块级的全局变量,导入后即可直接访问:

# file2.py
x = 7  # 定义在模块级别,整个模块都能访问
def foo():
    # 原函数逻辑
    pass

# file1.py
from file2 import x
def myfunc():
    print(x)

myfunc()

内容的提问来源于stack exchange,提问作者Sri2110

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 18:22:37