首页 > 解决方案 > 如何在for循环中创建多个函数?

问题描述

我想在一个 for 循环中创建多个函数,分别是 func1、func2、...、funci,它们都采用不同的定义。我已经测试了以下方法,但它们给我带来了错误。正确的方法是如何做到的:

我想要的是:

for i in range(1, 10):
    func1(x, args1):
        do something

    func2(x, args2):
        do something

我做了什么但没有工作:

for ii in range(1,10):
    def globals()["func{}".format(ii)](t, "args{}".format(ii))

for ii in range(1,10):
    def "func{}".format(ii)(t, "args{}".format(ii))

对于我遇到的问题,我只发现以下链接不适用于我的目的。

如何在python中遍历具有相似名称的函数?

标签: python

解决方案


我认为使用检查签名功能的这个答案可以满足您的需求。如果没有,或者您认为它太复杂,我能想到的唯一方法是使用:eval

for i in range(1, 10):
    eval(f"""def func{i}(arg{i}):
    print(arg{i})""")

阅读这里为什么你不应该这样做。


推荐阅读