Я ВСЕХ ОБМАНУЛ... Извиняшки! Вся ПРАВДА о переменных в Python

  Рет қаралды 53,634

Диджитализируй!

Диджитализируй!

2 жыл бұрын

Так уж вышло, что я всех обманул. Сорянчики. Будем разбираться, как так вышло.
Мой курс «Хардкорная веб-разработка» - course.to.digital
Книжный клуб Ботаним!, где мы читаем хорошие ИТ-книги: botanim.to.digital/
Telegram: t0digital.t.me
Упоминаемые ресурсы:
Mark Summerfield, «Programming in Python 3»: www.amazon.com/Programming-Py...
Выступление «Nina Zakharenko - Memory Management in Python - The Basics - PyCon 2016»: • Nina Zakharenko - Memo...
Realpython, «Pointers in Python: What's the Point?»: realpython.com/pointers-in-py...
Al Sweigart, «BEYOND THE BASIC STUFF WITH PYTHON»: inventwithpython.com/beyond/
towardsdatascience, «Memory Management And Garbage Collection In Python»: towardsdatascience.com/memory...
/****************** about ******************/
Меня зовут Алексей Голобурдин, я программирую с 2004 года и на этом канале делюсь своим опытом. Я основатель и руководитель компаний:
- Диджитализируй digitalize.team, разрабатываем сложные IT системы для бизнеса;
- Salesbeat salesbeat.pro, комплексный модуль доставки для интернет магазинов.
Telegram канал - t.me/t0digital
ВК - digitalize.team
RuTube - rutube.ru/channel/24802975/ab...
Дзен - dzen.ru/id/6235d32cb64df01e6e...

Пікірлер: 462
@user-zm1ej1zv8v
@user-zm1ej1zv8v 2 жыл бұрын
Круто! Спасибо за информацию, очень помогает понимать, как всё работает на глубоком уровне. Отдельно радует повышение уровня съёмки и монтажа ;)
@klyasyuk8284
@klyasyuk8284 2 жыл бұрын
Красавчик. Те кто шарит и так всё поняли, а для тех кто не шарит и считает себя шибко умными - вот и повылазили. Претензий нет)
@alexeynikolaevskiy5922
@alexeynikolaevskiy5922 Жыл бұрын
Чуствовал подвох, но досмотрел. )) Спасибо за цитаты. И вообще, за короткие, без "воды", но инфомативные ролики по теме. Вы реально экономите нам, учащимся, наше время!
@evgenyzakiev693
@evgenyzakiev693 Жыл бұрын
Недавно начал смотреть канал Алексея. Блин, отличная подача материала, грамотно, юмористично. А самое главное, на мой взгляд, позитивно! Леха - ты молодец 👍 Спасибо за твой канал🤝
@t0digital
@t0digital Жыл бұрын
Спасибооо:)!
@programisli
@programisli 2 жыл бұрын
Про токсичность тоже хорошо сказал. Люди вместо дискусии переходят на токсичность не просто так. Но даже если у человека все норм, у него могут быть дни, когда эмоции берут верх. Это софт скил, над которым нужно работать. Негативные эмоции ухудшают состояние, а положительные делают жизнь лучше.
@user-xh3zy6hw2z
@user-xh3zy6hw2z 2 жыл бұрын
Алексей, спасибо вам за ваши видео, смотрю их довольно часто, много нового для себя узнаю! Про токсичность тоже интересно, будем надеяться что таких людей будет намного меньше в будущем))
@user-em3tz6fm9s
@user-em3tz6fm9s 2 жыл бұрын
Спасибо за труды, у Вас отличный канал, было бы здорово еслиб вы снова запустили свой курс, я не успел на него попасть к сожалению.
@Laertid
@Laertid 2 жыл бұрын
Когда в видео про программирование добавляется минутка про самоанализ - это круто ^_^ Давай серию роликов "Самоанализ как самотестирование" с методами из программирования применительно к психологии :) (вдруг это возможно связать? О_О Я не знаю, но было бы забавно...) Как вариант - хотя бы 1 штуку на первое апреля)
@IshuckShow
@IshuckShow 2 жыл бұрын
Крутой видос, хорошо объяснил, всё по полочкам, за книгу отдельное спасибо, не читал Ps: жду стрим на 100к, прошлый стрим был очень ламповый
@udacha163
@udacha163 2 жыл бұрын
госпади)) Алексей, да не стоит обращать внимание на хайп! контент толковый и объясняешь всегда доступно.
@mikisor4372
@mikisor4372 2 жыл бұрын
Спасибо за труд! Ждем новых видео !
@user-ez5sq9mw8i
@user-ez5sq9mw8i 2 жыл бұрын
Крутейший видос! Это самое лучшее начало видоса, которое видел!
@user-lz3ez3nn4j
@user-lz3ez3nn4j 2 жыл бұрын
Спасибо, приятно слушать и смотреть, лайк, как всегда!
@user-hb7my9uo3k
@user-hb7my9uo3k 2 жыл бұрын
Клёвый ответ! Питон под покровом простоты скрывает очень развитые вещи, свойственные традиционно более «сложным» языкам типа csharp и java, и, к сожалению, понимание этого приходит не сразу. Лишний раз убеждаюсь, что нужно изучать тему лучше и с разных сторон, чтоб понимать картину в целом. Удачи и процветания, жду ещё видосов!
@user-gb4cl5jv8l
@user-gb4cl5jv8l 2 жыл бұрын
Спасибо за видео. Вообще информатика нас учит, что объекты можно передавать либо по значению, либо по ссылке. Если по ссылке, объект не копируется а передается ссылка на его место в памяти, если по значению - объект копируется и передается. Ваш пример из си - это передача по значению. Си умеет и по ссылке передавать. Так что глобально есть языки, где можно и по ссылке и по значению (С, Java), а есть где только по ссылке (Python). Как по мне, каждый язык в праве называть свои конструкции как хочется его создателям, главное чтобы все было формализовано.
@libertycool8946
@libertycool8946 2 жыл бұрын
Спасибо тебе большое! Благодаря тебе понял как работает ссылочной модель в python и заодно переменные в других языках))
@mrm1tn1ck
@mrm1tn1ck 2 жыл бұрын
Про "переменные" знал, так как учил работу памяти, но всегда приятно послушать грамотного человека. Лайк и спасибо.
@kizik85
@kizik85 2 жыл бұрын
Подписался на канал! Красавчик! Хорошо объясняешь!!! Продолжай в том же духе!!!
@Uni-Coder
@Uni-Coder 2 жыл бұрын
В общем, есть две терминологии: "переменная (в том числе и указатели)" и "имя-объект-связывание". Обе хороши. Я об этом тоже планировал рассказать, хотя не скоро.
@Vorono4ka
@Vorono4ka 2 жыл бұрын
блин, совет мне кажется очень полезный, спасибо большое, прислушаюсь!
@sashasashovic91
@sashasashovic91 2 жыл бұрын
Очень хорошое объяснение , жду ещё информации.
@savir
@savir 2 жыл бұрын
Лучшее объяснение и в прошлом видео и в этом. Респект!
@donfedor007
@donfedor007 Жыл бұрын
Видео огонь! И познавательно и с юмором! Автор молодец 💪👍спасибо Вам за Вашу работу👍
@t0digital
@t0digital Жыл бұрын
Спасибо:)!
@donfedor007
@donfedor007 Жыл бұрын
@@t0digital пожалуйста 👍
@programisli
@programisli 2 жыл бұрын
Я увидел твое видео с вызывающим заголовком когда записывал свой видос про каналы, которые смотрю. Я ничего смертельного не вижу с том, что ты говоришь, что это не переменные, потому что действительно они технически работают по другому. Хотя я все же считаю, что это переменные, просто это immutable data types и такие есть в C# или Java (строки) и там они тоже переменные. Я НЕ вижу криминала и считаю, что заявление о том, что в Python нет переменных имеет право на жизнь и видео классное, потому что основная идея не в том, как называть это - переменные, недопеременные, а в том, как это работает в Python, а это очень важно понимать.
@t0digital
@t0digital 2 жыл бұрын
Спасибо, Михаил!
@slavamogus3187
@slavamogus3187 2 жыл бұрын
По факту это всего лишь ссылки на ячейки памяти где хранятся литералы, это обсалютно другие вещи, это то же самое что сказать агл слова beach и bich это одно и тоже лишь потому что они звучат одинаково, это бренд
@programisli
@programisli 2 жыл бұрын
@@slavamogus3187 С точки зрения хранения это верно. Но ведь ссылка тоже сохраняется где-то и вот тут можно увидеть разные версии определения - это ссылка, это ссылочная переменная... Леша придерживается мнения, что это просто ссылка. Верно или нет? Верно с точки зрения тех, кто любит просто говорить ссылка и неверно с точки зрения с тех, кто считает это ссылочной переменной. Это все халивар, который не так важен, потому что я считаю, что самое главное понимать, как это работает. Если человек понимает, что в Python даже простое изменение числовой переменной приводит к выделению новой памяти, то это чудеса безопасности, но проблемы производительности. Можно долго спорить, как это правильно назвать, важнее знать, как это работает.
@knarg4682
@knarg4682 Ай бұрын
@@programisli > это ссылка, это ссылочная переменная.. Внури списка перечислены... чтобы два раза не вставать, несколько созданных объектов "поток". Имён у них вообще нет. А ссылки от коллекции "список" -- есть. Неважно от чего, хоть от литерала, хоть от чёрта лысого, факт в том, что это просто "адреса", а не контейнеры.
@rockkley9159
@rockkley9159 2 жыл бұрын
Спасибо! Хороший вывод про эмоции
@user-fw8je6gg8y
@user-fw8je6gg8y 2 жыл бұрын
Продолжай делать хороший качественный контент✊
@leonidzimin2419
@leonidzimin2419 2 жыл бұрын
+ Марк Лутц, Изучаем python, гл. 6, п. Переменные, объекты и ссылки(стр.195), всё подробно описано, в принципе, тоже самое что и было сказано в прошлом видео. Да думаю, в большинстве книг по python, этот момент поднимается. Удивительно, что на ровном месте возникают такие конфликты.
@i17talk8
@i17talk8 2 жыл бұрын
смотрел предыдущее видео и думал, когда же будет следующее? :) В общем, просто вопрос терминологии. Кто знает, как работает, тому не важно, как это называется, переменная, референс, ссылка, указатель, ключ хэш-массива... Всё равно при кодинге вероятно будут применять привычные другим языкам шаблоны. Для этого, собственно, синтаксис переменных и оставили. Удобно же. Ну и + patch в мозгу для особенностей трансляции языка.
@artur_tumasov
@artur_tumasov 2 жыл бұрын
Спасибо за информацию!
@user-xx6wh5nm4s
@user-xx6wh5nm4s 2 жыл бұрын
Фига, что происходит)) Канал на стадии активного обсуждения - желаю ракетного взлёта! А знания, компетенции и ценности - и так присутствуют) Приятно слушать автора!)
@user-nq3oq6ke1y
@user-nq3oq6ke1y 2 жыл бұрын
Автор сумел поднять активность в комментах? Молодец. В наше время это не просто сделать.
@user-xx6wh5nm4s
@user-xx6wh5nm4s 2 жыл бұрын
@@user-nq3oq6ke1y главное - что сделал)
@user-nq3oq6ke1y
@user-nq3oq6ke1y 2 жыл бұрын
@@user-xx6wh5nm4s надо будет учиться у него этому.
@PaulCherepnin
@PaulCherepnin 2 жыл бұрын
Молодец! Уделал всех мамкиных теоретиков) другие, думали, поняли посыл и суть прошлого ролика
@pashamix
@pashamix 2 жыл бұрын
Из примера в видео получается, что в python при присваивании мы присваиваем ссылку на объект. Меняем объект и он меняется во во всех переменных ссылающихся на него. А в языке С при присваивании мы создаем копию этого объекта?
@gapchannelAi
@gapchannelAi 2 жыл бұрын
Как всегда материал на высшем уровне
@sergeyvolodeev5600
@sergeyvolodeev5600 2 жыл бұрын
А почему в качестве примера были взяты класс в Python и структура в Си? Взяли бы там и там целые числа и продемонстрировали. Или на числах не получается?
@denissavast
@denissavast 2 жыл бұрын
Самый лучший канал ! Благодарю
@4687778
@4687778 2 жыл бұрын
Очень удивлен, что есть на канале люди, которые не поняли отличий из прошлого видео и стали лить грязь... Еще раз спасибо за контент, мне всегда интересно смотреть ролики и я всегда нахожу для себя что-то новенькое :)
@computercomputer3293
@computercomputer3293 2 жыл бұрын
Очень удивлен, что люди умеющие читать доки, не умеют анализировать информацию
@itreactor3864
@itreactor3864 2 жыл бұрын
очень удивлен, что до сих пор переменные не могут сами себя инициализировать
@dimr5001
@dimr5001 2 жыл бұрын
Советую разобраться как в с\с++ работают ссылки и указатели. И тогда вы поймете почему в пайтонне есть переменные. Только реализация у них отличается, что бы скрыт всю трахомотину с указателями для упрощения.
@computercomputer3293
@computercomputer3293 2 жыл бұрын
@@kirillgimranov4943 анализ информации. Посмотрите, что это. Из чего строится, как происходит, из чего состоит понимание
@computercomputer3293
@computercomputer3293 2 жыл бұрын
@@kirillgimranov4943 и еще. Вы невнимательно смотрели первое видео. Там четко оговаривалось о каком виде переменных идет речь, о переменных в виде отдельных "коробочек". Вот таких переменных в пайтон и нет, о чем и был разговор, поэтому все претензии смотрятся очень странно и нелепо, и наводит на мысль о большой невнимательности при просмотре
@makspoland6876
@makspoland6876 2 жыл бұрын
Красиво разложил по-полочкам 👍.
@S3424868
@S3424868 2 жыл бұрын
Я не программист, я любитель, балуюсь для себя. Но я понял всё, что говорилось в прошлом видео и по большей части уже знал, как это работает, а видео просто рассказало детально. Если уж я понял, что ж там за люди, что кипишь подняли
@BeginBye
@BeginBye 2 жыл бұрын
Тут разница тонкая, и она касается именно реализации. Именно поэтому, чтобы подчеркнуть разницу механизмов, и названия их различны. Сейчас вот пытаюсь сформулировать эту разницу, и пришел к таким вот определениям, поправьте меня, если неправ. Классическая переменная - это верхнеуровневое наименование определенной области памяти, выделенной для хранения объекта. Ссылка (как в Пайтон) - это верхнеуровневое наименование самого объекта, находящегося в памяти по определенному адресу. Переменная - это имя "ящика", выделенного под определенный объект. При определении переменной, выделяется область памяти, необходимая для хранения объекта указанного типа (размер и конфигурация ящика). Когда мы обращаемся по имени переменной к объекту, мы по сути обращаемся к области памяти, которая его хранит. В Пайтоне несколько иначе. Тут имя переменной - это имя того, что находится внутри "ящика" - имя которое мы дали объекту. Когда мы обращаемся по имени переменной к объекту в Пайтон, мы обращаемся к самому объекту. При создании объекта, Пайтон определяет его тип (Duck Typing), выделяет в соответствии с ним область памяти, и привязывает к объекту, не к области памяти, указатель - имя, нашу "переменную". Сам же запоминает, куда он этот объект положил. Область памяти будет зарезервирована за этим объектом до тех пор, пока существует хотя бы один указатель на этот объект. Указателей не осталось - GC снял резерв с этой области, и ее снова можно использовать для записи. Используя механизм переменных, наш запрос, после ее определеня (создания "ящика") таков: дай мне содержимое вот того "ящика". Используя механизм ссылок, наш запрос таков: дай мне вот этот объект. В каком ящике он лежит - сам знаешь.
@IllIll..
@IllIll.. 2 жыл бұрын
Да, Дмитрий, это действительно информация, которая может быть полезной. Если, что-то проще скрипта простенького пишешь, А эмоции - дело такое, да. Надо тренировать внимательность к тому, что у тебя внутри.
@CapTheFox
@CapTheFox 2 жыл бұрын
Алексей, можно ли у вас узнать, что за модель микрофона вы используете, очень хороший звук в ваших роликах.
@t0digital
@t0digital 2 жыл бұрын
Спасибо! В этом видео Rode NTG-3
@RebootSMR
@RebootSMR 2 жыл бұрын
Улыбнуло, Спасибо)
@vanadoo5836
@vanadoo5836 2 жыл бұрын
А константы - тоже ссылки же? Как и обычные питоновские переменные? И их также можно переприсваивать в каждой новой строчке?
@Zavadnoi1
@Zavadnoi1 2 жыл бұрын
Вот я пытаюсь войти в прогоамирование и понял с первого видео))) ну вот чувствую маленький стеб)) но мне нравится все чётко и понятно, спасибо
@emmanuelgoldstein9079
@emmanuelgoldstein9079 2 жыл бұрын
Я после Си на Питон через Лутца пришел. Как раз у Лутца узнал, что это всё указатели и жить сразу стало легче )
@user-dv7uk3di2y
@user-dv7uk3di2y 2 жыл бұрын
Так всё таки возвращаясь к стеку и куче, почему хранилище ссылок это стек? Там нет никакаго "последний на вход - первый на выход"
@user-gq8yw1mm6e
@user-gq8yw1mm6e 2 жыл бұрын
Особенно понравился переход от темы переменных в питоне к эмоциям и психологии))) те кто в теме и так все поняли)
@yan200go
@yan200go 2 жыл бұрын
Диджитализируй! Можете, пожалуйста, снять код ревью? Можно даже устроить серию видео. Думаю, многим это сильно поможет(и мне в их числе). P.S. извините, что не по теме
@JohnSmith-pb7cn
@JohnSmith-pb7cn 2 жыл бұрын
Да, спасибо, интересные эффекты получаются: 1. Если создать переменную в функции, вывести её результатом в другую. При изменении 2-ой переменной мы меняем результат работы функции фактически. 2. Каждое присваивание константе - выделение нового блока памяти. Всё укладывается в ссылочный тип CPP.
@user-bd7pb6le4w
@user-bd7pb6le4w Жыл бұрын
Спасибо за информацию! Появился вопрос во время просмотра, вся это история с ссылками идёт в рамках интерпретатора cpython, или это концепция языка? Вообще, есть ли интерпретаторы (или вообще возможность реализовать интерпретатор python), где переменные будут именно как переменные? (вопрос «зачем» - это отдельный вопрос, и здесь бы я его опустил)
@vas_._sfer6157
@vas_._sfer6157 Жыл бұрын
Нет. Такое невозможно. Переменные в python - это исключительно имена. Иначе будет нарушена спецификация
@iliag7068
@iliag7068 2 жыл бұрын
Действительно, суть предыдущего видео ведь в том, чтобы донести до коллег то, как работает этот механизм под капотом, а не в объявлении войны понятию "переменная" в Python. Думаю, и сам Алексей продолжит использовать это определение) Но есть такие люди, которым нужно потешить своё "я")
@chu_ri5470
@chu_ri5470 2 жыл бұрын
@@IvanIvanov-wn7ep скорее речь идёт о синдроме утёнка. После того как узнаёшь пять шесть способов организации памяти, подобное выветривается.
@Alina-nq9nw
@Alina-nq9nw 2 жыл бұрын
Здравствуйте! Как у вас продвигается изучение RUST? Было бы интересно какое-то видео, ориентированное на изучающих. О том как погружаться в язык, или что-то интересненькое другое.
@alexeis628
@alexeis628 Жыл бұрын
Момент 5:56 - в Питоне мы присвоили Петру ссылку на Алекса (Вы же в прошлом видео про ссылки и рассказывали), и потом через Петра изменили возраст Алекса в Си: чтобы присвоить указатель на переменную, надо сделать это явно (через *). Поэтому структура Man скопировалась при присваивании petr = alex; Эти две структуры стали независимы друг от друга, а в Питоне остался лишь один объект Момент 6:38 - "новый термин" - просто нужно говорить о ссылочных переменных
@Winexoid
@Winexoid Жыл бұрын
у меня вопрос - а законно ли в C делать struct = struct? давно не кодил и появились сомнения - будет ли авто-вызов python-like .deep_copy() в C99+? что там в стандартах, что в gcc? хотелось бы подтвердить - просто копировал всегда memcpy(), т.к. знал что присвоение только для простых типов, а для структур нужна копи-паста (да, совсем old-style)
@user-ps5bt1dz4i
@user-ps5bt1dz4i 4 ай бұрын
Такой же вопрос задал автору. Он вводит людей в заблуждение .
@igorantipov1735
@igorantipov1735 2 жыл бұрын
Целых 11:08 потратил на объяснение очевидных вещей, всё для народа! P.S. Музыка - огонь! 😂
@wickeddubz
@wickeddubz 2 жыл бұрын
Алексей, а расскажи пожалуйста про Nim. Он шустрый, и некоторые принципы взял из Python. Почему-то мне думается, что он тебе понравится. Формат - к примеру, чем похожи и чем отличаются эти два языка.
@ievgenk.8991
@ievgenk.8991 2 жыл бұрын
Как можно использовать "имена" в пайтоне иначе чем в Си? Какие есть плюшки или минусы? в чем они отличаются на практике, за исключением внутреннего представления?
@egorasirotiv270
@egorasirotiv270 2 жыл бұрын
Офигенный контент!) Я думаю, что у джунов сильно подгорело)
@tuchkaletuchka5685
@tuchkaletuchka5685 2 жыл бұрын
Шли всех на фиг, ты прекрасен. Я далек от Питона но то как ты пояснил всё в том видео было вполне понятно и все становится очевидно. Немного почитав (не поленившись) убедился в этом на все 100. У тебя годный контент, всегда смотрю фишки по линуксу...
@MrHopeOrLess
@MrHopeOrLess 2 жыл бұрын
Под первым не расписался, моя поддержа зачастую заканчивается лайком, да простят меня хозяева каналов. Под вторым тоже (как и многие здесь) решил оставить благодарность за терпение перед душнилами. Потому что ИТ все всё поняли, каких именно переменных нет, а какие в пайтон есть, и видос был очень познавательным. Полностью согласен с последним монологом. Дай Бог здоровья и новых видосов. Всё очень профессионально! P.S. Личное желание, если позволите, побольше видосов для понимания работы пайтона, а не самого кодинга. Но я пока, конечно же, всё еще только одна еденица из целевой группы! =)
@KrassRome
@KrassRome 2 жыл бұрын
Начало улыбнуло
@mr.nobody8948
@mr.nobody8948 2 жыл бұрын
Ребята, давайте жить дружно! Не будем ссориться из-за переменных. Лучше вместе сплотимся против общего врага - PHP))
@leosv0
@leosv0 2 жыл бұрын
Да, хорошо бы питон заменил пыху!
@user-zl3rb8rr3t
@user-zl3rb8rr3t 2 жыл бұрын
@@leosv0 Дак потихоньку заменяет, раньше все над пхпэшниками прикалывались, а сейчас над питонистами))
@leosv0
@leosv0 2 жыл бұрын
@@user-zl3rb8rr3t есть такое🙂
@Alexander13Orlov
@Alexander13Orlov Жыл бұрын
:) позитивное видео
@ampetelin
@ampetelin 2 жыл бұрын
Оу, я немного провтыкал с вопросом к предыдущему видео. С неизменяемыми типами данных всё понятно, вместо изменения данных в самой ячейке памяти, значение записывается в другую ячейку и наша "переменная" хранит уже ссылку на неё. А вот как дела обстоят со списками, я право, не до конца понял: если у нас есть список names = ['John'], к которому мы аппендим 'Jack', но сам список names ссылается всё также на первоначальную ячейку. Но ведь мы изменили содержимое списка, почему всё тот же адрес?
@alexpresley8002
@alexpresley8002 2 жыл бұрын
Грамотно расставил все по местам 👍
@user-mh1dz6xv5z
@user-mh1dz6xv5z 2 жыл бұрын
Привет, посоветуй удобный дебаггер для вима/нвима, как текстовый редакатор он крут, а вот полноценно кодить в нем - пока боль для меня, пробовал vimspector и pdb и они не очень зашли. Спасибо.
@user-kj4oj7tf8u
@user-kj4oj7tf8u 2 жыл бұрын
вс код
@yunushkin88
@yunushkin88 Жыл бұрын
Нет ну на собеседовании задавали такой вопрос - говорят тип что в питоне нет переменных как Вы можете это объяснить? Хотя начинал я собеседование по С++))
@nigvi6229
@nigvi6229 2 жыл бұрын
Во многих языках не редкость если передается по ссылке, но это не влияет на то что их называют переменными. Так же если не ошибаюсь примитивы в js все сохраняются по значению за исключением строк, но это не мешает им вести себя как обычные переменные. То есть у тебя есть тьма текста и ты копируешь содержимое и в памяти нет копии пока ты не изменишь ее в самой переменной, вот именно это реализация и на мой взгляд это не делает переменные со строкой не переменными в js. Я считаю что это тоже переменные но ссылочного типа. Если все начать делить на подтипы и назвать по разному то у нас DevOps профессий штук 50 будет как и паттернов или если в js нет типов то и паттернов тоже. Окей у нас будет у каждого языка свой SOLID, DRY и тд. ну а почему нет языки же разные как и переменные.
@DimiEG
@DimiEG 2 жыл бұрын
В свете текущих событий как это отразилось на вашем бизнесе и планируете ли вы создать дополнительную площадку для своих видео? (Некоторые используют ещё Zen Yandex)
@t0digital
@t0digital 2 жыл бұрын
Как отразится на нашем бизнесе пока до конца непонятно. Телеграм открою, да, сегодня будет видео о wireguard vpn
@Evervess179
@Evervess179 2 жыл бұрын
Ну ок, ну гуд. ГОу более подробно о памяти и выделении памяти. Про кучу и стек, а есчо вы говорили (или я не так понял) что все переменные хранятся в куче, а у лутца писалось что локальные переменные(ссылочные) попадают в стек. ГОУ подробнее о работе памяти
@_Romanin_
@_Romanin_ 2 жыл бұрын
3 года уже в Python и смотрел прошлый ролик, у меня проффесия программист и я не понимаю, что до тебя так доёбываються, ты всё сказал как есть, есть пару некорректровок, но они на столько незначительные, что я их не сразу заметил, а нет есть люди которые до этих мелочей доебались. Вообщем, не обращай внимания на этих "сведующих" и продолжай пилить свой годный контент! Удачи и терпения.
@luden6794
@luden6794 2 жыл бұрын
Всегда находятся недовольные
@IottaImpyls
@IottaImpyls 2 жыл бұрын
Спасибо за видео, а что за трек в начале?
@t0digital
@t0digital 2 жыл бұрын
Silver Maple - Midnight textures
@septembertakoito314
@septembertakoito314 2 жыл бұрын
Вступление топ - ждем номинацию на оскар.
@andreykulikov3760
@andreykulikov3760 Жыл бұрын
Спасибо:)
@danielklimovoff
@danielklimovoff 2 жыл бұрын
я слышал что в питоне еще функции есть, но хз правда ли это
@t0digital
@t0digital 2 жыл бұрын
Вопрос непростой и требует серьёзной проработки и исследования!
@user-ns1jm3fq6m
@user-ns1jm3fq6m 2 жыл бұрын
миф скорее всего
@palyaros02
@palyaros02 2 жыл бұрын
Вообще в питоне всё - объект. "Функция" - это ссылка на объект, передающая или нет ссылки на аргументы (очень грубо говоря, тут надо поговорить про области видимости, глобальность и неявное копирование), и потом этот объект проводит какие-то вычисления и отдает ссылку на новый объект, либо изменяет состояние объекта(ов) по ссылке во время своей работы. Почитайте python docs, там все описано, что-то даже на русском
@hippie999
@hippie999 2 жыл бұрын
@@t0digital +
@user-up8dl9gp8o
@user-up8dl9gp8o 2 жыл бұрын
Вроде как def нет
@mrbush1872
@mrbush1872 2 жыл бұрын
Привет , котаны 🖖 спасибо за интересную тему ... с юмором ))) А давайте обсудим темк что лучше для веб разработки Django или Go ? С одной стороны Django старый и проверенный фреймворк , с другой Go который набираеь обороты )
@genych93
@genych93 2 жыл бұрын
FastApi
@PetrikPyato4kin
@PetrikPyato4kin 2 жыл бұрын
flask 😀 А вообще странно сравнивать фреймворк с другим языком
@mrbush1872
@mrbush1872 2 жыл бұрын
@@PetrikPyato4kin просто для создания веб приложений Go рекомендует не использовать фреймворк
@onermaster
@onermaster 6 ай бұрын
Спасибо)
@sergeyalekseenko6456
@sergeyalekseenko6456 2 жыл бұрын
Извинения размером с хвостик колибри. И да, я попался на кликбейт. Начал смотреть с мыслью: Как так обманул?! Всеж по факту в прошлом видео как есть рассказал!? Надо глянуть... Но 0:37 это ваще смертельное оружие и запрещённый прием. Спасибо, улучшил настроение перед сном. :DDD
@user-re1ri9jp3e
@user-re1ri9jp3e 2 жыл бұрын
Все есть объек 🙏 не все поймут, староверы не примут 😁
@romanryaboshtan9270
@romanryaboshtan9270 6 ай бұрын
5:58 интересно, что в javascript это работает также как в python, тоже ссылки и иммутабельность
@OmgOrganic
@OmgOrganic 2 жыл бұрын
век живи- век учись. Невозможно взять все на свете :)
@cyberblogru
@cyberblogru 2 жыл бұрын
Я это проходил еще в самом начале, когда изучал пайтон. Но все же все равно всегда говорю "переменные", так как это by design по спецификации языка. Если я скажу "Я создал переменную" меня поймет больше людей, чем если я скажу "Я создал ссылку". А язык (разговорный всмысле) я использую, чтобы меня мог понять другой человек в первую очередь. И я ОЧЕНЬ надеюсь, что благодаря тебе в мире не родятся токсики, которые будут душнить каждый раз, когда услышат слово "переменная"))
@leosv0
@leosv0 2 жыл бұрын
Да, я тоже это в самом начале узнал. У Хирьянова в первой лекции по алгоритмам на питоне.
@yuralamov9835
@yuralamov9835 10 ай бұрын
Затянула тема. По 2 раза просмотрел эти 2 видео, затем полез в доку python, python/c api и с. Если мы просто print(id("jhgfjhf")) это будет область кучи, где расположена не объявленная и не инициализированная переменная для будущего использования? По моему, любая переменная это объект со своими свойствами, в том числе и стартовым адресом хранения самих данных, к которым мы можем обратиться посредством указателя с типом данных куда он лезет. Или я не прав?
@user-yb3vy2wx8u
@user-yb3vy2wx8u Жыл бұрын
Вижу, что видео уже год, но я только сейчас на него наткнулся и всего пару дней назад на предыдущее, но тем не менее хочется порассуждать. Во-первых, хочу заметить, что людям свойствено давать знакомые имена тем сущностям, которые выглядят знакомо, то есть в их логике если что-то выглядит как переменная, то это переменная. Но у всех языков есть своя специфика, а значит такой подход может быть ошибочным. Как пример здесь можно привести Rust, где по сути тоже нет переменных, а есть владельцы. Во вторых, хочется порассуждать насчет ссылок. Тут хочется для начала заметить, что ссылки, представляющие собой, конкретно в Python, адрес - так же храняться в памяти. И если сравнивать например с C (где кстати нет ссылок, но есть указатели), то там переменная с типом int* все равно будет переменной, хоть и в ней хранится только адрес, а сами данные где-либо еще. Хорошей аналогией тут будут ссылки из C++, которые по сути являются абстракцией компилятора и реально являются просто еще одним именем для данных по определенному адресу в памяти, но сам этот адрес разруливается в compiletime и в ссылке не хранится. Еще тут хочу привести в пример JS, где по сути так же все объекты, а в переменных хранятся лишь ссылки (по крайней мере в реализации V8 так, стандарт же позволяет хранить некоторые типы как значения, хотя с теми же строками это не возможно технически), но при этом в JS эта сущность называется переменной. Как-то так, и за истинной думаю стоит идти в исходники компиляторов/интерпретаторов конкретного языка.
@MrRussianuser
@MrRussianuser 2 жыл бұрын
Алексей, я прошу прощения если обидел вас лично комментариями. Под прошлым видео. Меня вот лично интересует вопрос посущественнее: как компоновать код в Python приложении (делить на сущности)? Вот я на данный момент программист с Java взглядом на приложение (spring dependency injection, я просто пишу код, затем в configuration описываю как это все связать воедино) Для web приложения все очевидно: У меня есть controller layer для создания http endpoint-ов, есть service layer род ним, который содержит бизнес логику и дергает repository layer (кучка DAO объектов, тут все понятно, описание как в persistent storage ходить) я в принципе и на Python должен примерно так делать (слои можно обозвать по другому, смысл такой же) А вот если дело касается других юзкейсов. Например, у меня есть бот, который слушает WS соединение и иногда в него отвечает. Есть вариант писать функции, вызывать их из друг друга. Есть вариант сделать ООП условное ( обвязать канал связи классом шаблона Состояние и слушать его listener-ами). Есть вариант сделать много функций-callback-ов, записать их в коллекцию и дергать по событию прихода данных (как в Delphi или JS/HTML) Итого, вопрос такой: как принято структурировать код в Python? ООП в почёте? Ответа нигде не нашёл толкового, было бы очень здорово увидеть видео на эту тему. Я был бы вам очень благодарен
@PetrikPyato4kin
@PetrikPyato4kin 2 жыл бұрын
ООП в почете, потому что все в пайтон есть обьект. можете это очень просто проверить a=1 dir(a) или так dir(1)
@SklerozRu
@SklerozRu Жыл бұрын
Чет не понял, на 6:00, почему struct а не class, как в Python? Это троллинг такой? ))
@t0digital
@t0digital Жыл бұрын
Это не Python код на 6:00
@akionka
@akionka Жыл бұрын
потому что в Си нет классов наверное?
@romanrrv
@romanrrv 2 жыл бұрын
Было весело :)
@HSGRSHKI
@HSGRSHKI 2 жыл бұрын
Представляю глаза людей, пишущих что все изменяемые значения = переменные, когда они придут в Си/Си++ с поинтерами, рефами и переменными
@ivanshipilov4265
@ivanshipilov4265 2 жыл бұрын
The Zen of Python, by Tim Peters ... 19.Namespaces are one honking great idea -- let's do more of those! "Namespaces" - пространство имен, т.е. мы имеем Namespaces и Names. Ни про какие variables речи не было.
@The8Shift
@The8Shift 2 жыл бұрын
ого. не думал, что такое познавательное видео может кого-то задеть... чёёёё ваще)
@kookaburru
@kookaburru 2 жыл бұрын
Одно замечание собственно почему в питоне нет переменных как таковых это то что тип объекта хранится в самом объекте, а так называемая переменная всего лишь имя :)
@andrewbondaryuk
@andrewbondaryuk 2 жыл бұрын
Вообще даже в Си на уровне исходника есть именованная изменяемая область памяти, чтобы кожанным мешкам было удобно. При компиляции остаётся только адрес области.
@andrewbondaryuk
@andrewbondaryuk 2 жыл бұрын
@@IvanIvanov-wn7ep Потому что указатель это изменяемая область памяти ;)
@andrewbondaryuk
@andrewbondaryuk 2 жыл бұрын
@@IvanIvanov-wn7ep Это как?
@andrewbondaryuk
@andrewbondaryuk 2 жыл бұрын
@@IvanIvanov-wn7ep Вы сейчас про указатель в каком языке? 😀
@andrewbondaryuk
@andrewbondaryuk 2 жыл бұрын
@@IvanIvanov-wn7ep В Сях? Атрибут указателя? Чо?
@ocamlmail
@ocamlmail 2 жыл бұрын
Вопрос: вод есть код на питоне t = 6 t = 5 5 и 6 будут храниться разве в разных ячейках памяти? Если нет, то почему это не переменная? Т.е. это просто именованная ячейка в памяти и не более. Разве, например, тип int в питоне ссылочный как в smalltalk или ruby?
@markervictor
@markervictor 2 жыл бұрын
Нужно воспринимать это так: 1 строчка - «Хочу иметь возможность получить объект 6 по имени t» 2 строчка - «А теперь именем t я буду называть объект 5» Это значительно отличается от того, что мы имеем в других языках вроде C.
@flikos
@flikos 2 жыл бұрын
Питон простым числам до 255 вроде задает свои ячейки памяти и во время исполнения ссылается на них. Не затирает значение ячеек одно на другое, а ссылается на другую ячейку. ) пример некорректен.
@ocamlmail
@ocamlmail 2 жыл бұрын
@@markervictor Благодарю, ясно. Т.е. это как в ruby -- все объект, даже примитивные типы.
@namalnikmisartenko8785
@namalnikmisartenko8785 2 жыл бұрын
Я все таки топлю за указатели (в С нету ссылок) если говорить о работе под капотом) Потому что как таковую ссылку изменить невозможно (опять же если речь идет о том же С++) А так как в самом С нету ссылок как таковых то по факту в примере (num = 10) num есть ничто иное как указатель на объект 10 Ну и опять же указатель может указывать на один адрес объекта а потом вполне на другой)
@gatapov
@gatapov 2 жыл бұрын
Немного не по теме, но хочется узнать мнение: нужно ли писать аннотации к переменным и функциям? Как Вы к этому относитесь? Нужно ли писать во всем коде?
@t0digital
@t0digital 2 жыл бұрын
Аннотации это тайп хинтинги или что?
@gatapov
@gatapov 2 жыл бұрын
@@t0digital да, я про type hinting
@t0digital
@t0digital 2 жыл бұрын
@@gatapov тайп хинтинги к аргументам функций и возвращаемых значений писать нужно, да. Причем писать правильные. Использовать интерфейсы, где нужно. Использовать Iterable и тд.
@user-vu8pl8zl7h
@user-vu8pl8zl7h 2 жыл бұрын
А кто-нибудь может объяснить, зачем писать petr=alex? Какая в этом смысловая нагрузка? Вот у нас был объект алекс, а потом мы что сделали его копию с новым именем? Или создали еще одну ссылку на алекса? Зачем?
@AlexandrSpirit
@AlexandrSpirit 2 жыл бұрын
Новички в пайтоне, пока не сталкиваются с вопросом оптимизации кода в плане скорости и потребления ресурсов, могут не заморачиваться с терминалогией и не разбираться как оно там под капотом работает. Но как только встанет вопрос... тут сразу придется копать. Копать серьёзно.
@hippie999
@hippie999 2 жыл бұрын
Спасибо
@Dmitry13s
@Dmitry13s 2 жыл бұрын
Как я понял определение "переменной" в python и других языках (например я С, C++, Java) зависит от работы с памятью и способами хранения данных в ней.
@dmitryn.4506
@dmitryn.4506 2 жыл бұрын
Просто автор слишком умный и, видать, с C++ знаком, и тогда, действительно, по сравнению с "сями", конечно же, то, что у нас в Питоне есть, никак нельзя назвать просто переменными (это объекты или ссылки). Вот и бомбануло пуканы у тех, кто кроме Питона программированием не интересуется 😅 Чтобы не нарваться на праведный гнев, стоило предысторию своих рассуждений рассказать сначала... 😁👍 Но, как ни крути, для нормального общения и описания происходящего, мы все, всё равно, будем называть их "переменными", иначе, в конце концов, задротством терминологическим каким-то начинает попахивать 😅, однако же подразумевая, что, по сути, они не переменные... 👍 А вообще, очень круто всё рассказал!! 🤘😎
@illiarodionov
@illiarodionov 2 жыл бұрын
Красавчик)))
100😭🎉 #thankyou
00:28
はじめしゃちょー(hajime)
Рет қаралды 46 МЛН
СҰЛТАН СҮЛЕЙМАНДАР | bayGUYS
24:46
bayGUYS
Рет қаралды 779 М.
Кәріс өшін алды...| Synyptas 3 | 10 серия
24:51
химия за 8 класс
22:00
Репетитор по химии ОГЭ ЕГЭI Брук Елена
Рет қаралды 79
Именование переменных, классов и методов в коде
25:40
Python 4: первые впечатления
24:35
Python Russian
Рет қаралды 12 М.