标签: python
python中有这样的东西作为'执行'语句,我可以使用类似于下面的方式吗?
statement='print "hello world"' def loop(statement): for i in range(100): for j in range(100): execute statement loop(statement)
答案 0 :(得分:10)
是的,只需传递可调用并使用statement()执行它。
statement()
callable 是一个函数,lambda表达式或任何其他实现__call__的对象。
__call__
def loop(func): for i in range(100): for j in range(100): func() def say_hello(): print "hello world" loop(say_hello)
如果你真的想从字符串中执行代码(相信我,你没有!),有exec:
exec
>>> code = 'print "hello bad code"' >>> exec code hello bad code