小编典典

如何动态调用Python函数

python

我有以下代码:

fields = ['name','email']

def clean_name():
    pass

def clean_email():
    pass

我怎么能叫clean_name()clean_email()动态?

例如:

for field in fields:
    clean_{field}()

我使用了大括号,因为这是我以前在PHP中使用的方式,但是显然不起作用。

如何使用Python做到这一点?


阅读 185

收藏
2020-12-20

共1个答案

小编典典

如果不想使用globals, vars并且不想创建单独的模块和/或类来封装要动态调用的函数,则可以将它们作为当前模块的属性来调用:

import sys
...
getattr(sys.modules[__name__], "clean_%s" % fieldname)()
2020-12-20