Форум сайта python.su
1
Доброго времени суток,
Такой вопрос:
1)исходный код Java сначало компилируеться в байт-код а после выполняеться на JVM;
2)исходный код Python сначало компилируеться в байт-код а после выполняеться на PVM;
Почему тогда говорят что исходный код на Python интерпритируеться а на Java - компилируеться?
И возможно ли виполнить Python-скрипт без компиляции в байт-код?
Офлайн
47
erebusпитновский интерпретатор исполняет байт-код, который получается из AST, которое получается из текстового исходника, так что никак. Можно только указать интерпретатору не оставлять кеш байт-кода на диске.
И возможно ли виполнить Python-скрипт без компиляции в байт-код?
Офлайн
33
erebus
Почему тогда говорят что исходный код на Python интерпритируеться а на Java - компилируеться?
Отредактировано Budulianin (Янв. 7, 2014 15:32:50)
Офлайн
1
Спасибо большое, вродебы все понял. Тогда последний вопрос:
Возможно ли изменять код программы во время её исполнения не прерывая исполнения. Только не перезагружать отдельные модули(используя reload), а к примеру исходный код какого-то метода во время его исполнения?
Насколько я понял весь текст программы сначало компилируеться в байт код, поэтому сделать выше сказанное невозможно.Но может я не прав?
Офлайн
253
erebus
не прав
def f(): print("a") f() def f(): print("b") f()
Офлайн
1
doza_and
Возможно я не совсем правильно объяснил. Нужно к примеру в какой-то части исходного кода установить точку останова, далее изменить исходный код и продолжить выполнение.
Офлайн
33
erebus
Спасибо большое, вродебы все понял.
erebus
Возможно ли изменять код программы во время её исполнения не прерывая исполнения.
Офлайн
75
erebusErlang же!
кода установить точку останова, далее изменить исходный код и продолжить выполнение.
Офлайн
1
Budulianin
Не из самой программы, я имел в виду: приостановить программу->изменить код->продолжить выполнение.
Singularity
Благодарю за информацию про Erlang, но как насчет Python?
Офлайн
75
erebus
я уверен на 100% что тебе не надо этого делать в продакшене.
Или ты просто хочешь дебагер ?
Офлайн