Python创建以特定名称开头的所有函数的列表
场景: 我正在使用python在cycle中执行一些函数。。。一遍又一遍 我是怎么做的: 我创建了一个包含我想要执行的所有函数的列表,然后我就这样做了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
# 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()是我要找的方法。完美,先生。非常感谢。实际上,装饰解决方案是最好的一个-它是非常明确和安全和稳健,因为它可以。也请考虑这一点:完美,先生。非常感谢。实际上,装饰解决方案是迄今为止最好的-它是非常明确的,作为安全和稳健作为可以,请考虑一下这个问题: