Найти - Пользователи
Полная версия: Механика Питона
Начало » Python для новичков » Механика Питона
1 2
igor.kaist
yashamhur
#можт я и гоню конечно :) но интересно всетаки
не путай… Ты говоришь про интерактивную консоль питона, где каждая строка обрабатывается и результат работы выводится в stdout. (набери в ней 2+2 например)
Если исполняется питоновский скрипт через интерпретатор, то в stdout ничего не попадает. Это легко же проверить…
или мы вообще говорим о разном..
yashamhur
igor.kaist
где каждая строка обрабатывается и результат работы выводится в stdout
- честно говоря я исхожу из того, что работа IDLE и обработка модуля интерпритатором- это очень схожие процессы
, и IDLE это реал-тайм модификация интерпритатора, и прежде чем вывести что-либо , например литерал - IDLE также компилит в байт-код
(потому как обрабатывает инструкцию). а уж потом создает в памяти объект и выводит его в “трубу” автоматом
мой вопрос в том, что питон проглатывает литералы в любом случае, НО те, что “без ссылок” удаляются “сборщиком мусора”
вполне возможно , что заданный без ссылки литерал просто игнорируется, (что тоже может быть)
,но мне кажется что это не так и я прошу подтвердить или опровергнуть это, вот и все ….
если знаешь как оно фурЫчит на самом деле напиши плиз…..
crchemist
не завжди в байткод попадає:
>>> def test():
... 'hello world'
... return 1
...
>>> from dis import dis
>>> dis(test)
3 0 LOAD_CONST 1 (1)
3 RETURN_VALUE
>>> def test2():
... 3
... 4+5
... 'hi'
...
>>> dis(test2)
3 0 LOAD_CONST 3 (9)
3 POP_TOP

4 4 LOAD_CONST 0 (None)
7 RETURN_VALUE
>>>
yashamhur
2igor.kaist, crchemist, Андрей Светлов - мужики, спасибо, будем юзать dis

вот ссылка по теме:
http://www.intuit.ru/department/pl/python/14/3.html
NSkrypnik
Когда я говорил, что не попадает в байткод, то имел в виду файл *.pyc, просто проверил, будут ли там эти литералы. Оказалось, что их там не оказалось =).
yashamhur
Хотелось бы еще насыпать пару ссылок в тему:
http://thomas.apestaart.org/log/?p=927

http://blog.doughellmann.com/2009/08/pymotw-dis-python-bytecode-disassembler.html
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB