В Python — нет переменных. И как теперь жить? Python Memory Management на пальцах HD

В Python — нет переменных. И как теперь жить? Python Memory Management на пальцах
00:24:44

12n.ru 16751 ролик

В Python — нет переменных. И как теперь жить? Python Memory Management на пальцах.

Да-да, в Python нет переменных. Как так вышло и что с этим делать? Как работает с оперативной памятью Python? Что такое Stack и Heap и как они используются? Какие особенности mutable и immutable данных связаны с этим?
Сочный материал для тех, кто хочет глубже понимать, как работает интерпретатор CPython, и использовать это для написания более эффективных программ.

Книжный клуб Ботаним!, где мы читаем хорошие ИТ-книги: botanim.to.digital/
Мой курс «Основы компьютерных и веб-технологий с Python»: course01.to.digital/
Telegram: t0digital.t.me

0:00 О чём пойдёт речь
0:43 Об оперативной памяти
3:12 Stack и Heap в оперативной памяти
7:19 Как использует память Python?
10:50 Неизменяемые строки
11:49 Про списки и оператор is
14:11 Про кортежи
16:15 Garbage Collector и подсчёт ссылок
20:41 Передача объектов в функции по ссылке
24:18 Выводы

/****************** about ******************/

Меня зовут Алексей Голобурдин, я программирую с 2004 года и на этом канале делюсь своим опытом. Я основатель и руководитель компаний:

— Диджитализируй digitalize.team, разрабатываем сложные IT системы для бизнеса;
— Salesbeat salesbeat.pro, комплексный модуль доставки для интернет магазинов.

Telegram канал — t.me/t0digital
ВК — vk.com/digitalize.team
RuTube — rutube.ru/channel/24802975/about/
Дзен — dzen.ru/id/6235d32cb64df01e6e78c883

RSS
your zorge
18:09
Дорогой мой человек, это прекрасно, что ты разобрался с работой памяти, но от того как ты называешь (представляешь) переменную — в виде коробки или в виде бирки — переменная не перестает быть переменной. Кроме переменных и функций не только в коде, но и в мире ничего нет. Переменные существуют независимо от представлений (сознания) и действий человека… Ну а в остальном было интересно. По крайней мере ты нашел способ привлечь внимание к своему видео.
Антон Абросимов
07:19
l1, l2 = ['aaa'], ['aaa']; assert l1 is not l2 and l1[0] is l2[0]
Василий пупкин
18:08
Шикарно! Проясняет многое в языке.
Ну и к слову не зря Андрей Столяров настаивает на том что начинать програмировать с Паскаля и освоить работу с указателями в нём. Когда понимаешь что такое указатель и как из них можно собрать хотябы список гораздо проще усвоить вот это поведение пайтона.
Ильхам Эргашев
00:56
Просто капитальный красавчик
Shurick Skalkovich
21:50
У вас при подсчете ссылок на empty ошибка. Т.к. вы вызвали empty, для присвоения a и b, то там технически лежат None'ы из-за pass в теле функции. А кол-во ссылок такое из-за объявленной функции и передаче ее, как аргумент, в getrefcount, т.е 2 ссылки. Вы, наверное хотели не вызывать функции, а положить ее в переменные))
sashka sashka
16:34
Огромнейшая благодарность!
Roman
17:39
в последнем методе проще проверять так: names = names or []
pro100bro
14:01
Большое спасибо за интересную подачу, важного новичкам материала
Константин
18:27
В Пайтоне переменные есть, а на уровень ниже, т.е. в интерпретаторе их нет. На уровень ещё ниже переменные снова есть, т.к интерпретатор написан на Си. А на уровень ещё ниже переменных снова нет, там машинный код (регистру процессора без разницы что в него загрузили ). На следующих уровнях ниже, перечисляю по убыванию: логические вентилях -> транзисторах -> пн-переходах -> атомах -> кварках -----> переменных снова нет
Doing Well
00:02
Только передаем мы в функции не абстрактные какие-то непонятные ссылки, а pyobject, у которого есть refcount, ссылка на память и тип объекта, что очевидно не является эквивалентом указателя из C.