Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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 - Fatal编程技术网

Python创建以特定名称开头的所有函数的列表

Python创建以特定名称开头的所有函数的列表,python,Python,场景: 我正在使用python在cycle中执行一些函数。。。一遍又一遍 我是怎么做的: 我创建了一个包含我想要执行的所有函数的列表,然后我就这样做了 # Define the functions before using 'em def this_f: pass def the_other: pass .... # List of f() I want to run funciones_escrapeadoras = [ this_f, the_other

场景

我正在使用python在cycle中执行一些函数。。。一遍又一遍

我是怎么做的

我创建了一个包含我想要执行的所有函数的列表,然后我就这样做了

# Define the functions before using 'em
def this_f:
    pass

def the_other:
    pass

....

# List of f() I want to run
funciones_escrapeadoras = [
    this_f,
    the_other,
    ...
    ]

# Call them all, cyclically
while True:
    for funcion_escrapeadora in funciones_escrapeadoras:
        funcion_escrapeadora()
问题

如果我在所有我想成为列表一部分的函数前面加上前缀,有没有办法自动识别它们并将它们放入该列表中

示例

我定义了以下功能:

奥托伦拉拉,你好,世界,奥托伦洛洛

只有autorun_lalaa和autorun_lololo和autorun_*将成为列表的一部分

目的

添加我想要运行的函数,而无需更新列表。

使用内置或
globals()

您还可以创建一个装饰器,如下所述:-然后函数不需要名称前缀,您可以让装饰器将函数添加到列表中。

使用内置或
全局函数()


您还可以制作一个Decorator,如下所述:-然后函数不需要名称前缀,您可以让Decorator将函数添加到列表中。

要列出您可以使用的模块的所有函数和变量的名称,请执行以下操作:

funcs_n_vars = dir(modulename)
然后您可以对其进行迭代以筛选列表:

filtered_funcs = [func for func in funcs_n_vars if ('filter' in func)]
最后,要从列表中调用方法,可以执行以下操作:

for func in filtered_funcs
    method_to_call = getattr(modulename, func)
    result = method_to_call()

要列出模块的所有函数和变量的名称,可以使用:

funcs_n_vars = dir(modulename)
然后您可以对其进行迭代以筛选列表:

filtered_funcs = [func for func in funcs_n_vars if ('filter' in func)]
最后,要从列表中调用方法,可以执行以下操作:

for func in filtered_funcs
    method_to_call = getattr(modulename, func)
    result = method_to_call()

您是否有一个以
autorun
为前缀的函数列表?不,这是我希望python自己以某种方式生成的列表(我建议制定一份全球清单,每个职能部门都将更新该清单,并将其命名为itself@ArpitSolanki好主意,但我会坚持John的答案。谢谢。你有一个以
autorun
为前缀的函数列表吗?没有,这是我希望python自己以某种方式生成的列表(我建议制定一份全球清单,每个职能部门都将更新该清单,并将其命名为itself@ArpitSolanki好主意,但我会坚持John的答案。谢谢。也谢谢你,但我会同意John的答案。我不需要来自模块的函数,只需要来自当前文件的函数和局部变量()是我一直在寻找的方法。也谢谢你,但我会同意John的回答。我不需要来自模块的函数,而是来自当前文件和locals()是我要找的方法。完美,先生。非常感谢。实际上,装饰解决方案是最好的一个-它是非常明确和安全和稳健,因为它可以。也请考虑这一点:完美,先生。非常感谢。实际上,装饰解决方案是迄今为止最好的-它是非常明确的,作为安全和稳健作为可以,请考虑一下这个问题: