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

Python中如何从导入的函数中获取可在当前文件使用的变量?

解决方法

首先明确问题:x 是 test1.py 中 func 函数的局部变量,函数执行完毕后局部变量会被销毁,不会自动暴露到模块级别或其他导入模块中。你之前尝试的 global 关键字无效,是因为没匹配正确的用法场景。

下面是两种可行的解决方式:

方式一:通过函数返回值传递(推荐)

不需要修改 test1.py,直接在 test2.py 中接收 func 的返回值并赋值给 x:

from test1 import *

x = func()  # 将func返回的100赋值给当前模块的x
y = Z + x
print(y)

这是最符合Python变量作用域设计的方式,局部变量的结果本来就该通过返回值传递,避免全局变量带来的副作用。

方式二:将x改为模块级全局变量

修改 test1.py,把 x 定义为模块级变量,并用 global 让函数修改这个变量:

Z = 50
x = 0  # 先声明模块级全局变量

def func():
    global x  # 声明使用模块级的x
    x = 100
    return x

之后在 test2.py 中调用 func() 后,x 就会被更新为100,此时可以直接使用:

from test1 import *

func()
y = Z + x
print(y)

注意:如果只在 func 里用 global x 但不在模块开头定义 x,调用 func 后 test1 会生成模块级 x,但因为 from test1 import * 是在导入时加载变量,此时 test2 不会自动获取新生成的 x,需要改用 import test1 然后通过 test1.x 访问。

内容的提问来源于stack exchange,提问作者Axel Hjärtström

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 13:07:35