有没有办法在python中自动定义函数?

时间:2013-04-05 14:35:58

标签: python python-3.x

我想知道是否有办法自动定义函数。例如,我想要一组函数,如:

def add1:
    list.append(x)
def add2:
    list.append(y)
def add3:
    list2.append(x)
...

问题是我必须定义很多这些,确切地说是232。有更快的方法吗?另外,我使用Python 3.2。

1 个答案:

答案 0 :(得分:1)

您可以使用exec

示例:

def your_common_function(i, txt):
   # here you may decide what to do with arguments according to "i" value
   if i == 1:
      print(txt)
   else:
      print(txt+'s')

for i in range(1, 233):
    exec("def add%d(txt):\n\tyour_common_function(%d, txt)" % (i, i))

add1("hello world")  # prints "hello world"
add167("hello world")  # prints "hello worlds" 

编辑我更改了代码,允许您根据“功能编号”定义不同的行为