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

如何导入带共同前缀的Python函数?避免频繁修改导入代码

解决Python批量导入特定前缀函数的问题

Python的import语法不支持foo_*这种通配符写法,所以会触发语法错误。要实现自动导入所有以foo_开头的函数,有两种实用方案:

方案一:在main.py中动态导入

无需修改testcases.py,直接在主脚本里筛选并导入目标函数:

#!/usr/bin/python3
import testcases

# 遍历testcases模块的所有成员,筛选出foo_开头的可调用函数
for name in dir(testcases):
    if name.startswith('foo_') and callable(getattr(testcases, name)):
        # 将函数添加到当前命名空间,直接调用即可
        globals()[name] = getattr(testcases, name)

# 直接调用导入的函数
foo_1()
foo_2()
# 后续新增的foo_3()、foo_4()等也能直接调用,无需修改main.py

方案二:修改testcases.py自动生成导出列表

在testcases.py末尾添加自动生成__all__的代码,这样主脚本可以用import *精准导入目标函数:

修改后的testcases.py

def foo_1():
    do_1()

def foo_2():
    do_2()

def bar_1():
    do_3()

def bar_2():
    do_4()

# 自动生成仅包含foo_开头函数的导出列表
__all__ = [name for name in dir() if name.startswith('foo_') and callable(globals()[name])]

简化后的main.py

#!/usr/bin/python3
from testcases import *

foo_1()
foo_2()
# 新增foo_开头的函数后,无需修改main.py即可直接调用

两种方案都能满足“新增foo_函数无需修改main.py”的需求,可根据实际场景选择:方案一适合无法修改testcases.py的情况,方案二的主脚本写法更简洁直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 14:50:03