如何在Python中定义一个名称包含变量的函数?

Mad*_*dno -4 python function

使用Python 2.7,我如何定义一个名称有变量的函数?喜欢:

for x in xrange(40):
  def functionname + x():
    print x
Run Code Online (Sandbox Code Playgroud)

?

kin*_*all 7

存储对列表或字典中的函数的引用.

为此,让我们创建一个函数,使我们将在列表中存储的函数:

def functionmaker(x):
    def function():
        print(x)
    return function
Run Code Online (Sandbox Code Playgroud)

这允许我们x在创建函数时捕获值.

现在让我们列出一下这样的函数:

functionlist = [functionmaker(x) for x in xrange(40)]
Run Code Online (Sandbox Code Playgroud)

现在我们可以称呼它们:

functionlist[5]()    # prints 5
Run Code Online (Sandbox Code Playgroud)