我有以下代码:Python:动态定义函数
funcs = []
for i in range(10):
def func():
print i
funcs.append(func)
for f in funcs:
f()
问题是func
正在被覆盖。即代码的输出是:
9
9
9
...
如果没有定义新函数的,你将如何解决这个?
最佳解决方案是更改函数的名称。即:
for i in range(10):
def func+i():
...
(或其他一些奇怪的语法)
改变函数的名称是没有必要的。名字只是名字。一旦你将它分配给funcs,你的函数的名字可能就是'funcs [0]','funcs [1]','funcs [2]'等。具有不同命名函数的唯一原因可能是if你正在搞'func .__ name__'。反正你也不应该这样做。 – jcdyer 2010-02-08 15:34:37