You need to enable JavaScript to run this app. Python中如何通过循环批量调用命名规则相近的函数
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何通过循环批量调用命名规则相近的函数

实现方法

方法1:手动维护函数列表(最推荐)

该方案不依赖函数命名规则,执行顺序完全可控,出错概率最低。

def statement1():
    # Do something
    print("执行statement1")

def statement2():
    # Do something
    print("执行statement2")

def statement3():
    # Do something
    print("执行statement3")

# 把需要执行的函数按顺序放进列表,注意不要加括号,直接传函数对象本身
func_list = [statement1, statement2, statement3]

# 循环调用
for func in func_list:
    func()

后续新增statement4这类函数时,只需要把新函数追加到列表中即可,灵活度很高。

方法2:按命名规则自动获取函数

如果你不想手动维护列表,且能确定所有待执行函数都符合statement+数字的命名规则,可以通过全局命名空间自动匹配调用:

for i in range(1, 4): # 数字区间对应函数名里的数字范围
    func_name = f"statement{i}"
    # 从全局命名空间获取对应名称的对象,判断是可调用的函数再执行
    if callable(globals().get(func_name)):
        globals()[func_name]()

注意使用该方案时要确保当前命名空间内没有其他符合statement+数字命名规则的非函数对象,避免出现调用错误。

方法3:装饰器自动注册(适合函数数量较多的场景)

如果待执行的函数数量多、经常需要增删,可以用装饰器自动把符合要求的函数加入执行队列,不需要手动修改调用列表:

func_queue = []

# 定义注册装饰器
def register_func(func):
    func_queue.append(func)
    return func

@register_func
def statement1():
    print("执行statement1")

@register_func
def statement2():
    print("执行statement2")

@register_func
def statement3():
    print("执行statement3")

# 循环调用所有已注册的函数
for func in func_queue:
    func()

后续新增函数时只要加@register_func装饰器就会自动加入执行队列,执行顺序和函数定义顺序一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 08:54:03