VK用のプライベートオンラインPythonインタプリタを書いています。これは、IDLEコンソールを密接にシミュレートします。私とホワイトリストの一部の人だけがこの機能を使用できます。私のサーバーに害を及ぼす可能性のある安全でないコードはありません。しかし、私は少し問題があります。たとえば、コードdef foo():
で文字列を送信し、SyntaxError
を取得したくないのに、長い文字列を\n
で書き込むことなく、行ごとに関数を定義し続ける。その場合、exec()
とeval()
は私に合っていません。希望の効果を得るために何を使用すべきですか?申し訳ありません重複している場合は、それでも似たような質問からそれを取得しないでください。Simulate Python対話モード
1
A
答えて
2
Python標準ライブラリには、code
とcodeop
モジュールが用意されています。また、より詳細な制御と、それがどのように動作するかのカスタマイズのためのいくつかの機能を提供し
import code
code.interact()
:code
モジュールだけストレートアップは、標準の対話インタプリタをシミュレートします。
import codeop
compiler = codeop.CommandCompiler()
try:
codeobject = compiler(some_source_string)
# codeobject is an exec-utable code object if some_source_string was a
# complete command, or None if the command is incomplete.
except (SyntaxError, OverflowError, ValueError):
# If some_source_string is invalid, we end up here.
# OverflowError and ValueError can occur in some cases involving invalid literals.
:
あなたはより基本的な構成要素から物事を構築したい場合は、codeop
モジュールは__future__
文を覚えているし、不完全なコマンドを認識し、コマンドコンパイラを提供します
2
これは無限ループに
exec <code> in globals,locals
次に、入力を読み取るまで沸騰。
IPython.frontend.terminal.console.interactiveshell.TerminalInteractiveSh ell.mainloop()
。
inputsplitter.push_accepts_more()
で継続検出が行われるのは、ast.parse()
です。
実際、IPythonには既にJupyter Notebookと呼ばれるインタラクティブなWebコンソールが用意されているため、再利用することをお勧めします。
関連する問題
- 1. Python Simulate 504ゲートウェイタイムアウトエラー
- 2. 「対話モード」と「スクリプトモード」のPython __del__メソッドの出力
- 3. matplotlibs対話モードのpython変数を編集
- 4. cygwinでpython対話モードを有効にする方法は?
- 5. sitecustomizeでpythonの対話モードを確認してください
- 6. PythonでHSPICEの対話モードを呼び出す
- 7. Python - 対話型電話帳
- 8. Grailsの静的文字列対話モード
- 9. パッチ:非対話モードで実行する
- 10. はここで対話モードで
- 11. iPythonは、それが通常のpython対話モードで動作します `\ N '
- 12. Python-Kafka:スクリプトモードではなく対話モードで実行されているプログラム
- 13. Python:対話モードで先頭の ">>>"と "..."を無視しますか?
- 14. 対話モードでPythonスクリプトを実行する可能性はありますか?
- 15. 対話型のpython/djangoチュートリアル
- 16. Pythonの対話型シェルプログラムラッパー
- 17. 対話型Pythonとabaqus
- 18. Python対話型シェル型アプリケーション
- 19. 対話型slackbotのプログラミング - Python
- 20. Python対話型CLIアプリケーション?
- 21. python matplotlib Agg対対話プロットとtight_layout
- 22. sbtの会話タスクがsbt対話モードで表示されない
- 23. 対話モードのないvimコマンドの実行
- 24. SBTタブ補完が対話モードで動作しない
- 25. ドッカーコンテナの対話モード自動クローズの問題
- 26. 特定のスクリプト行で対話モードを開始する
- 27. bbrスクリプトでpbrunを使用するには?対話モードで
- 28. GNU Octaveエラー "imfill:対話モードがサポートされていません"
- 29. 非対話モードでのpam-auth-updateの設定方法は?
- 30. 対話モードでsbt multipleコマンドを実行する方法