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

Python项目中如何导入并调用两个文件夹下的同名函数

如何为导入的同名文件设置别名

问题场景

当前工作项目的PROJECT目录下存在branch1和branch2两个文件夹,两个文件夹中均存放有同名文件solution.py,且两个文件内都定义了同名函数do。
原有运行失败的代码如下:

# Write your code here
from branch1 import do as a
from branch2 import do as b
# Keep the code below
a.do()
b.do() # 运行报错

错误原因

原有代码无法运行存在两个核心问题:

  • 导入路径错误:do函数定义在对应文件夹下的solution.py文件中,原导入语句未指定到solution模块层级,Python解释器无法定位到目标函数
  • 别名逻辑不匹配:若直接给导入的函数设置别名,别名本身就是可直接调用的函数对象,无需额外追加.do()后缀;原代码中# Keep the code below标注下的a.do()、b.do()调用逻辑不可修改,说明别名需要指向模块层级,而非单个函数。

正确实现方式

仅需修改导入部分代码,给两个路径下的solution模块分别设置别名即可,无需改动下方保留的调用逻辑:

# Write your code here
from branch1 import solution as a
from branch2 import solution as b

# Keep the code below
a.do()
b.do()

上述写法中,a是branch1/solution.py模块的别名,b是branch2/solution.py模块的别名,调用a.do()、b.do()时会分别执行两个文件中定义的do函数,完全避免同名文件、同名函数的命名冲突。

补充说明

  • 为避免不同Python版本的导入兼容问题,建议在branch1、branch2两个文件夹内分别创建空的__init__.py文件,让Python解释器将两个文件夹识别为可导入的正式包
  • 如果不需要保留原有a.do()的调用写法,也可以直接导入函数并设置别名,调用时直接使用别名加括号即可,示例如下:
    from branch1.solution import do as do_branch1
    from branch2.solution import do as do_branch2
    
    do_branch1()
    do_branch2()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 20:55:02