Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 9, 2009 14:04:29

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Механика Питона

yashamhur
#можт я и гоню конечно :) но интересно всетаки
не путай… Ты говоришь про интерактивную консоль питона, где каждая строка обрабатывается и результат работы выводится в stdout. (набери в ней 2+2 например)
Если исполняется питоновский скрипт через интерпретатор, то в stdout ничего не попадает. Это легко же проверить…
или мы вообще говорим о разном..



Отредактировано (Сен. 9, 2009 14:11:27)

Офлайн

#2 Сен. 9, 2009 14:29:40

yashamhur
От:
Зарегистрирован: 2009-07-23
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Механика Питона

igor.kaist
где каждая строка обрабатывается и результат работы выводится в stdout
- честно говоря я исхожу из того, что работа IDLE и обработка модуля интерпритатором- это очень схожие процессы
, и IDLE это реал-тайм модификация интерпритатора, и прежде чем вывести что-либо , например литерал - IDLE также компилит в байт-код
(потому как обрабатывает инструкцию). а уж потом создает в памяти объект и выводит его в “трубу” автоматом
мой вопрос в том, что питон проглатывает литералы в любом случае, НО те, что “без ссылок” удаляются “сборщиком мусора”
вполне возможно , что заданный без ссылки литерал просто игнорируется, (что тоже может быть)
,но мне кажется что это не так и я прошу подтвердить или опровергнуть это, вот и все ….
если знаешь как оно фурЫчит на самом деле напиши плиз…..



Офлайн

#3 Сен. 9, 2009 14:33:27

crchemist
От:
Зарегистрирован: 2008-07-09
Сообщения: 379
Репутация: +  0  -
Профиль   Отправить e-mail  

Механика Питона

не завжди в байткод попадає:

>>> 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
>>>



Отредактировано (Сен. 9, 2009 14:53:40)

Офлайн

#4 Сен. 9, 2009 16:14:31

yashamhur
От:
Зарегистрирован: 2009-07-23
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Механика Питона

2igor.kaist, crchemist, Андрей Светлов - мужики, спасибо, будем юзать dis

вот ссылка по теме:
http://www.intuit.ru/department/pl/python/14/3.html



Офлайн

#5 Сен. 9, 2009 18:14:50

NSkrypnik
От:
Зарегистрирован: 2009-08-17
Сообщения: 39
Репутация: +  0  -
Профиль   Отправить e-mail  

Механика Питона

Когда я говорил, что не попадает в байткод, то имел в виду файл *.pyc, просто проверил, будут ли там эти литералы. Оказалось, что их там не оказалось =).



Офлайн

#6 Сен. 9, 2009 20:22:40

yashamhur
От:
Зарегистрирован: 2009-07-23
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Механика Питона

Хотелось бы еще насыпать пару ссылок в тему:
http://thomas.apestaart.org/log/?p=927

http://blog.doughellmann.com/2009/08/pymotw-dis-python-bytecode-disassembler.html



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version