我有以下代码:
fields = ['name','email'] def clean_name(): pass def clean_email(): pass
我怎么能叫clean_name()和clean_email()动态?
clean_name()
clean_email()
例如:
for field in fields: clean_{field}()
我使用了大括号,因为这是我以前在PHP中使用的方式,但是显然不起作用。
如何使用Python做到这一点?
如果不想使用globals, vars并且不想创建单独的模块和/或类来封装要动态调用的函数,则可以将它们作为当前模块的属性来调用:
globals, vars
import sys ... getattr(sys.modules[__name__], "clean_%s" % fieldname)()