Pythonコードを含む文字列をPythonで実行するにはどうすればよいですか?質問する

Pythonコードを含む文字列をPythonで実行するにはどうすればよいですか?質問する

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

ただし、最初のステップは、本当に必要かどうかを自問することです。コードの実行は、通常、最後の手段にすべきです。ユーザーが入力したコードが含まれている場合、実行は遅く、見苦しく、危険です。常に、高階関数などの代替手段を最初に検討し、これらがニーズをよりよく満たすかどうかを確認してください。

おすすめ記事