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

如何从另一个文件调用函数并使用当前文件的变量?

解决跨文件调用函数时访问当前文件变量的问题

你遇到的核心问题是模块的命名空间和主脚本的命名空间相互独立。在modules.module里的displayText函数中声明global settings,只会在模块自身的全局作用域中查找settings,而非主脚本里定义的那个变量,所以才会报错。

下面是几种可行的解决方法:

方法1:将变量作为参数传递(推荐)

这是最符合Python编程规范的方案,明确函数依赖,避免全局变量带来的耦合问题。

主文件代码:

from modules.module import displayText

settings = "Hello world"
displayText(settings)  # 把变量作为参数传入函数
input()

模块文件(modules/module.py)代码:

def displayText(settings):
    print(settings)

方法2:从主脚本导入变量(谨慎使用)

如果必须使用全局变量的方式,可以在模块中直接从主脚本的命名空间导入settings,但要确保主脚本是通过python main.py直接运行的入口文件。

模块文件代码:

from __main__ import settings

def displayText():
    print(settings)

主文件代码保持不变:

from modules.module import *

settings = "Hello world"
displayText()
input()

注意:这种方式在复杂项目中容易引发循环导入问题,不推荐用于大型项目。

方法3:将变量定义在模块中,主脚本修改它

把settings的定义移到模块里,主脚本直接修改模块的全局变量:

模块文件代码:

settings = ""  # 先定义模块级别的全局变量

def displayText():
    print(settings)

主文件代码:

from modules.module import *

settings = "Hello world"  # 覆盖模块中的settings变量
displayText()
input()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 18:05:31