如何在Python中定义其名称包含变量的函数?
在使用Python2.7时,如何定义一个名为变量的函数?比如:如何在Python中定义其名称包含变量的函数?,python,function,Python,Function,在使用Python2.7时,如何定义一个名为变量的函数?比如: for x in xrange(40): def functionname + x(): print x 这太疯狂了 为什么不: def functionname(x): if x > 40: raise ValueError 然后根据您的意愿处理每种情况。在列表或字典中存储对函数的引用 为此,让我们制作一个函数,该函数将存储在列表中: def functionmaker(x):
for x in xrange(40):
def functionname + x():
print x
这太疯狂了
为什么不:
def functionname(x):
if x > 40:
raise ValueError
然后根据您的意愿处理每种情况。在列表或字典中存储对函数的引用 为此,让我们制作一个函数,该函数将存储在列表中:
def functionmaker(x):
def function():
print(x)
return function
这允许我们在创建函数时捕获值x
现在让我们列出这些函数:
functionlist = [functionmaker(x) for x in xrange(40)]
现在我们可以称之为:
functionlist[5]() # prints 5
编辑:由于编程风格不好,已删除此项。最好看看答案。很抱歉。一种比依赖exec()更具python风格的方法是使用locals()dict 这些台词是由受过训练的专业人士写的。不要在家里尝试这个。。。或者,这只是糟糕的编程实践 注二:
import可在print_功能
s中打印lambda
是一种解决方法lambda x=x:
from __future__ import print_function
for x in range(40):
funcname = "functionname" + str(x)
function = lambda x=x: print(x)
locals()[funcname] = function