python中是否有“执行”语句这样的东西,我可以像下面这样使用它?
statement='print "hello world"'
def loop(statement):
for i in range(100):
for j in range(100):
execute statement
loop(statement)
python中是否有“执行”语句这样的东西,我可以像下面这样使用它?
statement='print "hello world"'
def loop(statement):
for i in range(100):
for j in range(100):
execute statement
loop(statement)
是的,只需传递一个可调用对象并使用statement()
它来执行它。
可调用对象是函数、lambda 表达式或任何其他实现__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
:
>>> code = 'print "hello bad code"'
>>> exec code
hello bad code