■
《余録》組み込み関数 exec/eval:Python3.x では、組み込み関数 exec/eval の第1引数に、このコードオブジェクトを指定できます。
>>> s = "3+4" >>> c = compile(s,"","eval") >>> exec(c) >>> eval(c) 7 >>> s = "print(5-2)" >>> c = compile(s,"","eval") >>> exec(c) 3 >>> eval(c) 3 >>> s = "n = 3-4;n" >>> c = compile(s,"","single") >>> exec(c) -1 >>> eval(c) -1 >>> s = "for e in 'ABC': print(e)" >>> c = compile(s,"","exec") >>> exec(c) A B C >>> eval(c) A B C >>> n = 0; n 0 >>> s = """ n = 0 for e in range(10): n += e n""" >>> s '\nn = 0\nfor e in range(10):\n n += e\nn' >>> c = compile(s,"","exec") >>> exec(c) >>> eval(c) >>> n 45 >>>
□