Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 9, 2009 08:08:19

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

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

Всем привет, нужен ответ на глупый вопрос (как обычно):

Известно, что переменные являются хранителями ссылок на объекты,
а литералы , для интерпритатора, (ИМХО):
являются сокращенной формой инициализации объектов
определенного базового типа (взависимости от формы записи литерала)
Вопрос в следующем :

Что происходит в памяти когда я например задаю “голый” литерал
- без переменной, т.е. не:

b = ‘vasya pupkin’ #в памяти, литералом, создается объект опр.типа и на него указывает переменная b через ссылку

…а просто:
'vasya pupkin' #я думаю, что в памяти буден создан “неуправляемый” объект и сразу уничтожен “сборщиком мусора”



Офлайн

#2 Сен. 9, 2009 08:30:29

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

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

Хм, а “”“комментарии”“” тоже интерпретируются, как объект, а потом уничтожаются? =)
Я верю в то, что питон умнее, по крайней мере в байткод потом такие свободные литералы не попадают.



Отредактировано (Сен. 9, 2009 08:35:29)

Офлайн

#3 Сен. 9, 2009 09:51:00

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

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

yashamhur
Что происходит в памяти когда я например задаю “голый” литерал
эээ… а зачем его создавать то вообще?



Офлайн

#4 Сен. 9, 2009 10:07:06

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

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

igor.kaist
эээ… а зачем его создавать то вообще?
- вопрос не ЗАЧЕМ, а КАГ!
NSkrypnik
Хм, а “”“комментарии”“” тоже интерпретируются, как объект, а потом уничтожаются?
- тоже улыбнуло :)))
NSkrypnik
Я верю в то, что питон умнее, по крайней мере в байткод потом такие свободные литералы не попадают.
- вот ия тоже(что логично), но только хотел услышать подтверждение, а так ли ОНО (ибо комментарию - комментариево)



Офлайн

#5 Сен. 9, 2009 10:37:49

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

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

yashamhur
вот ия тоже(что логично),
Ну если в байт код не попадает, значит не выполняется уж точно, что тоже логично.



Офлайн

#6 Сен. 9, 2009 11:03:21

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

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

igor.kaist
Ну если в байт код не попадает, значит не выполняется уж точно, что тоже логично.
- похоже никто не знает попадает оно туда или нет :(

PS: да и оно в stdout пролазит ;)?



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

Офлайн

#7 Сен. 9, 2009 11:34:31

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

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

Ребята, есть такой модуль - dis. И в нем - одноименная функция.
Когда у меня возникают подобные сложности - делаю

import dis
import test_module
dis.dis(test_module)



Офлайн

#8 Сен. 9, 2009 12:06:49

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

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

2 Андрей Светлов - спасиб! попробуем



Офлайн

#9 Сен. 9, 2009 12:51:18

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

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

yashamhur
PS: да и оно в stdout пролазит ;)?
Кто сказал что пролазит?
В интерактивной консоли, где автоматически делается “print”, да пролазит.
'hello'
print 'world'



Отредактировано (Сен. 9, 2009 12:54:16)

Офлайн

#10 Сен. 9, 2009 13:29:51

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

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

2igor - агааа! значит “свободный литерал” обрабатывается питоном, вопрос - КАГ!
(даже если это print - print тоже ведь к чемуто приставить нужно , или аргумент переданный в print(если это функция) объектом не является?)
и почему питон позволяет писать такие литералы, не выдавая при этом ошибки?
Вопрос: ктонить знает как он их обрабатывает? Неужели питон просто игнорирует подобную запись - сомнительно….
мне кажется , что вариант создание объекта , а затем его уничтожение ввиду отсутсвия ссылок


#можт я и гоню конечно :) но интересно всетаки



Отредактировано (Сен. 9, 2009 13:31:00)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version