Форум сайта python.su
py.user.next
Освобождается место в памяти, которое он занимает и удаляется ссылка. В питоне оператор del это делает. del отвязывает имя от ссылки на объект, затем сборщик мусора потом, когда будет удобное время, находит объект, освобождает память и удаляет ссылку.
4kpt_V
Что Вы в си вцепились? Я же говорю. Определения СИ вообще никак не соосны с ООП.
4kpt_V
Если я не ошибаюсь, то каноничным с точки зрения создателей ООП был все же SmallTalk. Туда и надо таращиться.
Офлайн
FishHook
Это не я добавил, это вытекает из определения. Любой метод статический, пока нет ссылки на объект. Поэтому создать объект может только статический метод. Назовем статический метод, который создает новый объект конструктором, и вот вам конструктор, в любом ООП языке.
Офлайн
cutwaterЭто ссылка на null, ничто не нарушает моего определения
Фокус в том, что в С++, C#, Java в конструкторе внезапно есть ссылка на объект (this).
Офлайн
cutwaterЭто и в третьих тоже. Я в курсе.
Во-первых, в С++. С++ и С это два очень разных языка.
Офлайн
cutwaterТогда бы стек переполнялся в больших программах, ведь места бы не хватало. Если, например, стек может вместить 10 чисел, то максимум в программе можно было бы использовать 10 чисел. Но когда срабатывает деструктор 10-го числа, то мы можем поместить на его место 11-ое.
Деструктор не освобождает место в памяти, занимаемое объектом. По крайней мере в С++.
Офлайн
4kpt_V
Определение дано. Вы его сами зацитировали из Вики. Под него ложиться __init__ питона или нет? И не надо другие языки приводить. Мы опираемся на определение, которые Вы же сами и запостили. Правда после меня, но все равно
FishHook
Это ссылка на null, ничто не нарушает моего определения
Отредактировано cutwater (Март 11, 2017 22:40:16)
Офлайн
cutwaterПриведение других языков никак не доказывает.
Привожу другие языки для сравнения.
Отредактировано 4kpt_V (Март 11, 2017 22:43:23)
Офлайн
cutwaterС чего же? Компилятор делает магию, конструктор явно или неявно всегда возвращает ссылку на новый объект, и null становится не нуллом, а этой ссылкой. Как по-вашему вообще работают функции? Возврат значения из функции - это в любом случае замена некой глобальной переменной результатом функции, иначе оно не может работать.
Если бы this был ссылкой на null, то ниже приведенный код падал бы с ошибкой NullPointerException.
Офлайн
py.user.next
Тогда бы стек переполнялся в больших программах, ведь места бы не хватало. Если, например, стек может вместить 10 чисел, то максимум в программе можно было бы использовать 10 чисел. Но когда срабатывает деструктор 10-го числа, то мы можем поместить на его место 11-ое.
Офлайн
FishHook
С чего же? Компилятор делает магию, конструктор явно или неявно всегда возвращает ссылку на новый объект, и null становится не нуллом, а этой ссылкой.
FishHook
Как по-вашему вообще работают функции? Возврат значения из функции - это в любом случае замена некой глобальной переменной результатом функции, иначе оно не может работать.
Офлайн