Python コードを含む文字列を Python で実行するにはどうすればよいですか?
編集者注:eval
いかなる形式であれ、プログラムの外部から取得される可能性のあるデータには、 (または)を決して使用しないでくださいexec
。これは重大なセキュリティ リスクです。データの作成者がコンピュータ上で任意のコードを実行することを許可することになります。Pythonプログラムでパターンに従って複数の変数を作成したいためにここにいる場合は、ほぼ間違いなくXY問題これらの変数を一切作成しないでください。代わりに、リストや辞書を適切に使用する。
ベストアンサー1
文の場合は、exec(string)
(Python 3) またはexec string
(Python 2):
>>> my_code = 'print("Hello world")'
>>> exec(my_code)
Hello world
式の値が必要な場合は、eval(string)
:
>>> x = eval("2+2")
>>> x
4
ただし、最初のステップは、本当に必要かどうかを自問することです。コードの実行は、通常、最後の手段にすべきです。ユーザーが入力したコードが含まれている場合、実行は遅く、見苦しく、危険です。常に、高階関数などの代替手段を最初に検討し、これらがニーズをよりよく満たすかどうかを確認してください。