Форум сайта python.su
Всем привет, нужен ответ на глупый вопрос (как обычно):
Известно, что переменные являются хранителями ссылок на объекты,
а литералы , для интерпритатора, (ИМХО):
являются сокращенной формой инициализации объектов
определенного базового типа (взависимости от формы записи литерала)
Вопрос в следующем :
Что происходит в памяти когда я например задаю “голый” литерал
- без переменной, т.е. не:
b = ‘vasya pupkin’ #в памяти, литералом, создается объект опр.типа и на него указывает переменная b через ссылку
…а просто:
'vasya pupkin' #я думаю, что в памяти буден создан “неуправляемый” объект и сразу уничтожен “сборщиком мусора”
Офлайн
Хм, а “”“комментарии”“” тоже интерпретируются, как объект, а потом уничтожаются? =)
Я верю в то, что питон умнее, по крайней мере в байткод потом такие свободные литералы не попадают.
Отредактировано (Сен. 9, 2009 08:35:29)
Офлайн
yashamhurэээ… а зачем его создавать то вообще?
Что происходит в памяти когда я например задаю “голый” литерал
Офлайн
igor.kaist- вопрос не ЗАЧЕМ, а КАГ!
эээ… а зачем его создавать то вообще?
NSkrypnik- тоже улыбнуло :)))
Хм, а “”“комментарии”“” тоже интерпретируются, как объект, а потом уничтожаются?
NSkrypnik- вот ия тоже(что логично), но только хотел услышать подтверждение, а так ли ОНО (ибо комментарию - комментариево)
Я верю в то, что питон умнее, по крайней мере в байткод потом такие свободные литералы не попадают.
Офлайн
yashamhurНу если в байт код не попадает, значит не выполняется уж точно, что тоже логично.
вот ия тоже(что логично),
Офлайн
igor.kaist- похоже никто не знает попадает оно туда или нет :(
Ну если в байт код не попадает, значит не выполняется уж точно, что тоже логично.
Отредактировано (Сен. 9, 2009 11:09:22)
Офлайн
Ребята, есть такой модуль - dis. И в нем - одноименная функция.
Когда у меня возникают подобные сложности - делаю
import dis
import test_module
dis.dis(test_module)
Офлайн
2 Андрей Светлов - спасиб! попробуем
Офлайн
yashamhurКто сказал что пролазит?
PS: да и оно в stdout пролазит ;)?
'hello'
print 'world'
Отредактировано (Сен. 9, 2009 12:54:16)
Офлайн
2igor - агааа! значит “свободный литерал” обрабатывается питоном, вопрос - КАГ!
(даже если это print - print тоже ведь к чемуто приставить нужно , или аргумент переданный в print(если это функция) объектом не является?)
и почему питон позволяет писать такие литералы, не выдавая при этом ошибки?
Вопрос: ктонить знает как он их обрабатывает? Неужели питон просто игнорирует подобную запись - сомнительно….
мне кажется , что вариант создание объекта , а затем его уничтожение ввиду отсутсвия ссылок
#можт я и гоню конечно :) но интересно всетаки
Отредактировано (Сен. 9, 2009 13:31:00)
Офлайн