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)
はい、単純にcallableを渡し、それを使用statement()
して実行します。
callableは、関数、ラムダ式、または を実装するその他のオブジェクトです__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