Найти - Пользователи
Полная версия: Механика Питона
Начало » Python для новичков » Механика Питона
1 2
yashamhur
Всем привет, нужен ответ на глупый вопрос (как обычно):

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

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

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

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

PS: да и оно в stdout пролазит ;)?
Андрей Светлов
Ребята, есть такой модуль - dis. И в нем - одноименная функция.
Когда у меня возникают подобные сложности - делаю

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


#можт я и гоню конечно :) но интересно всетаки
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