Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在循环中定义多个函数_Python_Loops - Fatal编程技术网

Python 在循环中定义多个函数

Python 在循环中定义多个函数,python,loops,Python,Loops,我是python新手,需要编写一个循环,为列表中的每个元素声明一个函数。这些函数将在循环后使用。 循环中的最后一个元素需要额外处理 假设我有这个清单 elements = ['element_1' ,'element_2', 'element_3'] 我试过: for i, item in enumerate(elements) : if (i+1) == len(elements): def action(focus = 'action_' + str(i)) :

我是python新手,需要编写一个循环,为列表中的每个元素声明一个函数。这些函数将在循环后使用。 循环中的最后一个元素需要额外处理

假设我有这个清单

elements = ['element_1' ,'element_2', 'element_3']
我试过:

for i, item in enumerate(elements) : 

    if (i+1) == len(elements):
        def action(focus = 'action_' + str(i)) :
            print ("action_" + str(i) + " : " + item)
            .
            .
            .
    else :
        def action(focus = 'action_' + str(i)) :
            print ("action_" + str(i) + " : " + item)
            .
            .
            .

按照您的建议定义函数被认为是不好的做法。最好的方法是在外部级别定义函数,并在需要时调用它们。

为什么需要在循环内部创建函数?只需将您需要的任何参数传递给函数no,这不是您想要做的。这听起来很经典。你能解释一下你到底想完成什么吗?请注意,Python支持将数据与函数耦合的闭包,以及lambda或匿名函数,以解决您可能遇到的各种问题。您可以使用字符串中的名称定义函数。我正在使用Python act-r并尝试对认知体系结构建模。我通过Rest获得这个数组,它应该表示用户的操作。这将是一个例子:我知道这是一种糟糕的风格,但不幸的是,我必须使用python act-r,并且需要从列表中动态声明生产函数。不幸的是,在我的情况下,这不是一个选项。我可以写一个代码生成器。那么情况就是这样。