2016-04-01 4 views
-1

Как бы вы сделали оболочку IDLE, используя только код Python? Теперь я понимаю попрошайки, как простой exec (raw_input ('>>')), но как бы вы могли получить, если и другие состояния, или для циклов while и while?Как бы вы создали оболочку python в python?

в то время как 1 == 1:

считается недействительным синтаксис. Как вы могли бы это предотвратить?

Предлагаемая тема не является почти такой же, как и все ответы, но один ответ, как запустить программу python из программы python. Один из ответов указывает на то, что я спрашиваю, но он все равно терпит неудачу в выражении if и else, или в то время, или в цикле.

+0

Что вы имеете в виду, 'while 1 == 1:' является недопустимым синтаксисом? Это прекрасно. Вы забыли вставить тело петли, когда вы это пробовали? – user2357112

+0

Если бы мне пришлось создать оболочку IDLE в Python, она, вероятно, выглядела бы примерно так: https://github.com/python/cpython/tree/master/Lib/idlelib – Ryan

+0

@ user2357112 Я имею в виду, что если мой код был exec (' в то время как 1 == 1: '), это вызовет ошибку. Это означает, что при создании оболочки я не могу просто выполнить исходный ввод. – DevilApple227

ответ

0

Исходный код для IDLE находится в стандартной библиотеке Python под пакетом idlelib. Вы можете look at the source посмотреть, как они все реализуют.

idlelib - это много кода, поэтому может быть подавляющим, чтобы попытаться пройти через него. code module обеспечивает реализацию Python интерактивного режима Python; вы можете пройти через source code for that, чтобы понять, как вы можете это делать.

Смежные вопросы