Python 3.8 - офигенный, а Гвидо больше не диктатор

  Рет қаралды 62,087

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

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

Күн бұрын

Мой курс «Хардкорная веб-разработка» - course.to.digital
Книжный клуб Ботаним!, где мы читаем хорошие ИТ-книги: botanim.to.digital/
Telegram: t0digital.t.me
Сказать спасибо за это видео можно здесь - boosty.to/digitalize.team
Уже в октябре 2019 выходит релиз Python 3.8, а значит самое время познакомиться с его новыми фичами! Заодно обсудим уход Гвидо ван Россума с поста Великодушного Пожизненного Диктатора Python, который произошёл в процессе обсуждения новой функциональности версии 3.8.
Полный официальный перечень обновлений - docs.python.org/3.8/whatsnew/...
0:00 Python 3.8 уже здесь!
0:29 Walrus оператор и уход Гвидо
3:00 Строго позиционные аргументы
4:00 Изменения в f-string
4:55 Новые типы в typing - TypedDict
6:06 Декоратор final
7:12 Получение версии библиотек в рантайме
8:07 Итоги
Ищем ботов в Instagram подписчиках на Python
- • Video
Поднимаем Debian сервер для Python/Django - • Поднимаем Debian серве...
/****************** about ******************/
Меня зовут Алексей Голобурдин, я программирую с 2004 года и на этом канале делюсь своим опытом. Я основатель и руководитель компаний:
- Диджитализируй digitalize.team, разрабатываем сложные IT системы для бизнеса;
- Salesbeat salesbeat.pro, комплексный модуль доставки для интернет магазинов.
Если у вас есть проект на разработку, пишите нам на hi@digitalize.team.
С другими предложениями, а также если вам нужна одна или несколько индивидуальных консультаций/уроков по разработке (3000 руб/час), пишите мне на alexey@salesbeat.pro.
Telegram канал - t.me/t0digital
ВК - digitalize.team
RuTube - rutube.ru/channel/24802975/ab...
Дзен - dzen.ru/id/6235d32cb64df01e6e...

Пікірлер: 231
@rmatveev
@rmatveev 4 жыл бұрын
очень круто сделал отображение кода на экране!
@t0digital
@t0digital 4 жыл бұрын
Спасибо!
@aziznadirov2911
@aziznadirov2911 4 жыл бұрын
А как это делается?))
@t0digital
@t0digital 4 жыл бұрын
@@aziznadirov2911 режим наложения слоя Add в final cut
@meskirian
@meskirian 4 жыл бұрын
Ага! И подсветка нажатий клавиш тож норм.
@dimamiskevich5250
@dimamiskevich5250 4 жыл бұрын
3:40 я думаю ты показал неудачный пример, так как это и раньше не работало. У тебя кейворд аргументы функции называются x, y. А ты в вызове пытаешься присвоить значение по имени a, b.
@LoloKsyu
@LoloKsyu 4 жыл бұрын
Тоже удивило
@t0digital
@t0digital 4 жыл бұрын
Ты прав, это ошибка
@t0digital
@t0digital 4 жыл бұрын
@@Lokamp_ спасибо!
@dalom5860
@dalom5860 4 жыл бұрын
Для тех, кто не понял, := это одновременно объявить и передать объект в качестве операнда. Раньше было так: a = 5 if a > 10: pass Скоро станет так: if a := 5 > 10: pass
@t0digital
@t0digital 4 жыл бұрын
Да, спасибо!
@Bobronium
@Bobronium 4 жыл бұрын
Dalom к чему эти ужасные скобки?
@dalom5860
@dalom5860 4 жыл бұрын
@@Bobronium да действительно, сейчас чекнул, оказывается не нужно, спасибо.
@vitalik100500q
@vitalik100500q 2 жыл бұрын
Плохой оператор, смысл экономить 1 строку? Зато теперь менее очевидно
@t0digital
@t0digital 4 жыл бұрын
Эх, медленно подписчики растут, похоже, пора пилить видео «самый лучший способ взломать Пентагон в 2019м», «как выучить Python за час», «как программисту заработать миллион» и «программируем утюг»:)
@albertkaraev4686
@albertkaraev4686 4 жыл бұрын
Ну, зависит от цели, которую ты преследуешь. Понабегут школьники миллионами, но ты потеряешь нас, своих любящих и любимых котанов... 🐈 🐈 🐈
@albertkaraev4686
@albertkaraev4686 4 жыл бұрын
Оу, только увидел, что так мало подписчиков... И правда, мало.
@GoshaSon
@GoshaSon 4 жыл бұрын
@@albertkaraev4686 а мне наоборот Котаны уши режет. Ламповости оно не добавляет, добавляет лишь "простачковость", и начисто убивает ореол "профессионала", конечно последующее повествование его восстанавливает, но начало смазывает. Это при всём при том что разказчик мне импонирует.
@nnkaz1k856
@nnkaz1k856 4 жыл бұрын
Мы не котаны, мы пайтоны́
@GoshaSon
@GoshaSon 4 жыл бұрын
@@nnkaz1k856 не думаю что я один такой
@8scarsboy
@8scarsboy 4 жыл бұрын
Хороший обзор фич! Благодарствую
@t0digital
@t0digital 4 жыл бұрын
Спасибо
@MrVindor
@MrVindor 4 жыл бұрын
Огромное спасибо за видео, всегда по дело у очень полезно!
@t0digital
@t0digital 4 жыл бұрын
спасибо за отзыв!
@fullaccount3322
@fullaccount3322 4 жыл бұрын
Мужик прошу продолжай! Очень хорошо объясняешь! Смотреть приятно
@t0digital
@t0digital 4 жыл бұрын
Спасибо за приятный отзыв! У меня вынужденный перерыв сейчас kzbin.info/door/9MK8SybZcrHR3CUV4NMy2gcommunity?lb=UgzFaINd0XVEa-eF72R4AaABCQ
@andrewkondrashov6485
@andrewkondrashov6485 3 жыл бұрын
@@t0digital Поддержу. Легко заходит очень и интересно.
@FoodMaks
@FoodMaks 4 жыл бұрын
Круть, спасибо тебе большое!
@007Riga
@007Riga 4 жыл бұрын
Спасибо крутой канал!!!!
@toster8240
@toster8240 4 жыл бұрын
Спасибо! Ибо, познавательно и как всегда интересно ;-)
@t0digital
@t0digital 4 жыл бұрын
💪 спасибо!
@vovergg
@vovergg 4 жыл бұрын
Да, новая фича с f-string мне понравилась.))
@egorkomarov4719
@egorkomarov4719 4 жыл бұрын
Четко! Люблю твои видосы)
@matrix_root
@matrix_root 4 жыл бұрын
:= и f'{name=}' вкатили.
@daurensdykov9068
@daurensdykov9068 4 жыл бұрын
идея для будущих видосов... написание реальной библиотеки... со всем процессом.. билд, тестирование, можно CI захватить... и т.д.
@paravozpendos3292
@paravozpendos3292 4 жыл бұрын
Крутой канал, почему я раньше тебя не замечал?
@t0digital
@t0digital 4 жыл бұрын
Спасибо! Будет ещё много крутого:)
@MavelRoll
@MavelRoll 4 жыл бұрын
Новые фишки конечно интересно, но как на счет оптимизации работы пайтона? В этом направлении ничего не меняется у него?
@t0digital
@t0digital 4 жыл бұрын
Кардинально с 3.8 ничего не поменяется. По моему опыту крайне редко всё упирается в производительность ЯП
@t0digital
@t0digital 4 жыл бұрын
@@avazart614 если бы был на 100% универсальный язык, все бы писали на нём, поэтому конечно сначала задача, потом язык. Но Python близок к универсальному, а узкие блоки кода, где нужна max производительность и где она проседает, можно переписать на C, не меняя остальной код приложения, то есть остальные 99%, написанного быстро на Python.
@justkrybik
@justkrybik 4 жыл бұрын
@@t0digital донести бы эти мысли моему шефу. Который после рукожопов понаписавших говнокод, как например 25000 SQL запросов для рендеринга одной страницы(и я не преувеличиваю((), решил на сях свою базу писать, потому что mysql слишком медленная....
@user-ec6ix2xr1g
@user-ec6ix2xr1g 4 жыл бұрын
Я только начал изучать пайтон ещё не дорос до данного видоса )
@SergeyRadov
@SergeyRadov 4 жыл бұрын
Сделано хорошо, я Python не знаю, но было интересно. Местами похоже на Ruby.
@denwerxampp4035
@denwerxampp4035 4 жыл бұрын
Я и забыл уже, что такое присвоение имело место быть.
@mentatij
@mentatij 4 жыл бұрын
2:59 про оператор ":=" : получается name будет в области видимости только блока if ?
@t0digital
@t0digital 4 жыл бұрын
Хороший вопрос - так хотели сделать в процессе обсуждения PEP, но решили отказаться от этого, чтобы не ломать общую концепцию видимости переменных в Python, которая LEGB. То есть name будет виден не только в блоке if, но и снаружи.
@andrey-and-masha
@andrey-and-masha 4 жыл бұрын
На какой минуте про уход Гуидо?
@shurko
@shurko Жыл бұрын
А теперь давайте сравним первый пример с аналогичным фрагментом на CoffeeScript. Допустим, у нас уже определены функции first и second. А они, конечно, определены потому что нужны постоянно: first = (arr) -> arr[0] second = (arr) -> arr[1] Так же сокращения: cl = console .log и to_arr = Array .from И вжжжух! никаких лишних скобок: hello = 'Hello, cat!' cl name if name = second first to_arr hello .matchAll /, (.*)/g Почему нельзя обойтись одним '=' ?
@Lilia_111
@Lilia_111 4 жыл бұрын
Брр, произношение вводит в ступор
@ivanserov8489
@ivanserov8489 3 жыл бұрын
Hello! One of your videos i sees book about linux, maybe some recipes. Can you tell me what kind a book was it?
@t0digital
@t0digital 3 жыл бұрын
Wow... Linux book... May be it was www.ozon.ru/product/linux-karmannyy-spravochnik-2-e-izdanie-148627162/?from=share_android Linux Phrasebook, author is Scott Granneman
@ivanserov8489
@ivanserov8489 3 жыл бұрын
@@t0digital Yeah, it is she! Thank you:))
@user-oi1zl6de8i
@user-oi1zl6de8i 4 жыл бұрын
Вещи дядька говорит, придётся подписаться.
@t0digital
@t0digital 4 жыл бұрын
Спасиб:)
@vladyslavstadnyk2762
@vladyslavstadnyk2762 4 жыл бұрын
Хорошее видео, но у меня вопрос совсем не по пайтону. Как ты сделал, чтобы текст из консоли чисто выводился на видео без самой консоли?)
@t0digital
@t0digital 4 жыл бұрын
Режим наложения слоя с терминалом Add в final cut, есть такое же в любой монтажке. Чёрный фон терминала и почти чёрный фон видео в этом месте дают такой эффект
@vladyslavstadnyk2762
@vladyslavstadnyk2762 4 жыл бұрын
@@t0digital не в любой монтажке, поэтмоу и спросил) Спасибо, интересный трбк, надо будет опробовать
@t0digital
@t0digital 4 жыл бұрын
@@vladyslavstadnyk2762 в премьере точно есть:)
@krivalex
@krivalex 4 жыл бұрын
Подписка: отличная подача, код крутой сбоку да и лайк заодно
@t0digital
@t0digital 4 жыл бұрын
Спасибо!
@user-vu2dm4he3d
@user-vu2dm4he3d 4 жыл бұрын
Привет! Нашёл тебя недавно. Классно и легко смотреть, спасибо за хороший звук и отсутствие "эммм" и прочего. Имхо, можно так же в подобных видео добавлять чуть больше развёртывания, нежели "вот вам TypedDict” Если глянуть твоё видео про работы со сложными структурами, можно сделать вывод, что typeddict - тоже самое, что и namedtuple, основываясь на примерах, которые ты приводишь. И может сложиться представление , что этот тип в 3.8 - бесполезен (да, да, все мы знаем, что ничего в языки программирования не добавляется просто так)((кроме очередной библиотеки в JS)). В то время как на самом-то деле разница есть. Это просто обратная связь,не держи зла)
@t0digital
@t0digital 4 жыл бұрын
Спасибо за обратную связь, это очень ценно! «Кроме очередной библиотеки в JS» - оооо даааа, прекрасный дивный мир JS:)
@spappinventor2850
@spappinventor2850 4 жыл бұрын
Это что мне теперь когда я пишу скрипт вызываемый из Lazarus не надо переключиться c ":=" на "=" ?))) А то прямо то забуду ":" в Lazarus, то наоборот приходится стирать ":" в Питоне)
@samrybkin9184
@samrybkin9184 3 жыл бұрын
Привет посоветуй твой топ книг по linux пожалуйста.
@MaratYarulin
@MaratYarulin 4 жыл бұрын
Смысл подключать лишний модуль, если есть: `requests.__version__` (двойное нижнее подчеркивание)
@t0digital
@t0digital 4 жыл бұрын
Это регламентировано в каком-то PEP, не знаете? Все это поддерживают?
@NotHugs
@NotHugs 4 жыл бұрын
@@t0digital www.python.org/dev/peps/pep-0396/
@t0digital
@t0digital 4 жыл бұрын
@@NotHugs здОрово, спасибо!
@germanmalinovsky1719
@germanmalinovsky1719 4 жыл бұрын
Тю. А в пыхе испокон веков объявить и передать объект в качестве операнда без никаких "моржей" :)
@igora6367
@igora6367 4 жыл бұрын
класс)
@nioring
@nioring 4 жыл бұрын
Мде, нормальный оператор этот в итоге :=, и че все орали не разобравшись.
@user-sf9hs9dl6t
@user-sf9hs9dl6t 4 жыл бұрын
Спасибо, позновательно. Мне больше всего понравился оператор :=, давно хотелось чего-то такого.
@TheImperfectum
@TheImperfectum 4 жыл бұрын
@@avazart614 +1, вообще сразу покоробила его фраза, что "меньшее количество кода - это всегда хорошо". Фраза человека, которому, судя по всему, не приходилось никогда в жизни разбираться с чужим кодом, особенно с кодом такого вот оптимизатора-любителя, для которого чем меньше кода - тем лучше.
@sidorovich21101986
@sidorovich21101986 4 жыл бұрын
Просто офигенные новшества! Circular dependency так и не пофиксили, что ограничивает строгую типизацию. Зато добавили бесполезный синтаксический сахар и какие-то старые фичи из других языков, называя всё это новшеством. Аналог TypedDict есть, например, в Angular. А, интересно, нормальный dependency injection в Python/Django где-нибудь есть? Модификатор final вообще порадовал! Я, конечно, новичок в Python, но я не знал, что он только сейчас появился!
@t0digital
@t0digital 4 жыл бұрын
* «Circular dependency так и не пофиксили» наличие проблем с Circular dependency в коде говорит о его плохой архитектуре, а о не минусе языка, на котором код написан. Язык просто не позволяет сделать вам херовые вещи и это хорошо. * «Зато добавили бесполезный синтаксический сахар» бесполезного никто нигде ничего не внедряет, ни в одном ЯП нет бесполезных вещей. Если вы не можете найти применение чему-то, это говорит о вашем непонимании инструмента и целей его внедрения - и ни о чём больше это не говорит. * «Аналог TypedDict есть, например, в Angular» сравнивать ЯП и фреймворк это как сравнивать двигатель автомобиля и готовый автомобиль * «А, интересно, нормальный dependency injection в Python/Django где-нибудь есть» - вы уверены, что знаете, что это такое? В любом ЯП, где есть объекты и конструкторы, реализуется DI. * «Модификатор final вообще порадовал» - декоратор final отлично решает свою задачу, да.
@sidorovich21101986
@sidorovich21101986 4 жыл бұрын
Где тут плохой код? import abc class IHandler: @abc.abstractmethod def handle(self, message: str, ws_manager: WebSocketManager) -> str: pass class HandlerImpl(IHandler): def handle(self, message: str, ws_manager: WebSocketManager): ws_manager.send(message) class WebSocketManager: handler: IHandler def __init__(self): self.handler = HandlerImpl() def on_message(self, message: str): self.handler.handle(message, self) def send(self, message): print(message) ws_mgr = WebSocketManager() ws_mgr.on_message('my message')
@sidorovich21101986
@sidorovich21101986 4 жыл бұрын
Ладно не буду мучить. Сам уже допёр. Можешь не читать, если охота самому подумать. Там вместо WebSocketManager нужно передавать тип IWebSocketManager, то есть его абстрактный класс.
@arcsin4083
@arcsin4083 4 жыл бұрын
Ого, задатки строгой типизации, так вот что значит " сначало заберите что было, а потом верните", пусть это не о питоне, а о другим языках, но тем не менее
@t0digital
@t0digital 4 жыл бұрын
все к этому приходят - TypeScript в JS, type hinting в PHP и Python:)
@SergeyRadov
@SergeyRadov 4 жыл бұрын
Как на счет Label под видео для ранжирования аудитории? Это видео полезно - всем , начинающим, средней руки и т/п Потом какие-нибудь трюки языка для решения интересных или стандартных задач не очевидным способами. Ну и иногда хайповать интересными проектами Python + ML, но из разряда - это просто, тут сложнее, а это все вроде знают , но допускают кучу ошибок.
@t0digital
@t0digital 4 жыл бұрын
Я думал об этом, но пока не пришёл к тому, как это лучше и правильнее сделать. Пока бью по плейлистам
@egordemura4790
@egordemura4790 4 жыл бұрын
Правильно понимаю, что если a = b то переменной a присваивается ссылка на область памяти в которой хранится значение переменной b. А если a := b, то под переменную a выделяется новая область памяти куда копируется значение из b или это не так и смысл := в чем-то другом?
@t0digital
@t0digital 4 жыл бұрын
С точки зрения работы по ссылкам в := все аналогично простому =. В a := b просто происходит проверка значения b на трушность, если b трушна, то a присваивается ссылка на область памяти, в которой хранится b.
@lavolpenoire
@lavolpenoire 4 жыл бұрын
4:20 Я чето вообще эту фичу...как и все с ней связанное не понял- сам синтаксис конструкции, ее суть (Ф...что то там, вместо обычного принта)
@t0digital
@t0digital 4 жыл бұрын
f-strings появились уже давно, это не фича 3.8, не пользуетесь ей? По сути это удобная замена для "{value}".format(value=some_var), вместо этого можно писат f"{some_var}". А новая фича удобна для отладки и логирования, вместо f"some_var={some_var}" можно писать f"{some_var=}".
@karandalliik
@karandalliik 3 жыл бұрын
Вот Вам омментарий: 4 месяца впустую считай. Ф строка: f"{n=}" - и мое сердце и пальцы перестали двигаться. 4 месяца впустую. Это как вычислять фибоначи от 10**10**10**10 без использования опиимизирующих алгоритмов. И ждать 200 лет, а не 2 минуты.
@iz_90x
@iz_90x 4 жыл бұрын
Я правильно понимаю, что := передаёт булинговое значение?
@t0digital
@t0digital 4 жыл бұрын
Не обязательно булевое
@GoldenPalladin
@GoldenPalladin 4 жыл бұрын
TypedDict forewa!
@magadan4626
@magadan4626 4 жыл бұрын
ТайпинХ?
@user-bw7ov8ip5w
@user-bw7ov8ip5w 4 жыл бұрын
В какой версии python уберут отступы?
@t0digital
@t0digital 4 жыл бұрын
Надо просто подождать. Фичу, присутствующую в языке с самых первых версий, обязательно уберут. Обязательно.
@koteich_live
@koteich_live 2 жыл бұрын
Оч и оч круто
@0day694
@0day694 4 жыл бұрын
Когда я жил в Москве, у меня была такая же кружка и она была такая же черная внутри от чая ))
@t0digital
@t0digital 4 жыл бұрын
Периодически она моется, да:)))
@0day694
@0day694 4 жыл бұрын
@@t0digital да просто цвет такой, что мой не мой, все равно будет черная )) Кстати, видосики у тебя классные!
@t0digital
@t0digital 4 жыл бұрын
@@0day694 спасибо 🙏!
@user-qs7dp6yb2x
@user-qs7dp6yb2x 4 жыл бұрын
Дико извиняюсь, но у вас там опечатка, там должно быть "... Андрей" Ред: 1:45 тут
@t0digital
@t0digital 4 жыл бұрын
возмоооожно:)!
@user-vj3fk4dk9q
@user-vj3fk4dk9q 4 жыл бұрын
Python переоткрывает С++ :)
@MrAgilator
@MrAgilator 4 жыл бұрын
Да, такое же впечатление сложилось )) Движение к строгой типизации?
@meskirian
@meskirian 4 жыл бұрын
Свят, свят!!
@justkrybik
@justkrybik 4 жыл бұрын
@@MrAgilator у PHP тоже движение к строгой типизации. И в JS TypeScript присутствует. Лично я ничего плохого в этом не вижу. Стабильность строгой типизации + простота транслируемых языков, кмк хорошая связка.
@user-oq5sd3pi1b
@user-oq5sd3pi1b 3 жыл бұрын
@@justkrybik А Java считается строгой типизации?
@eugenedukatta9355
@eugenedukatta9355 4 жыл бұрын
странно зачем надо было добавлять := , можно ведь было просто семантику и синтаксис = поменять(расширить), и сделать как у :=
@t0digital
@t0digital 4 жыл бұрын
Явное лучше неявного, := делает не то же самое, что просто =
@vasiliynet3425
@vasiliynet3425 4 жыл бұрын
f-string - отличная фича; надеюсь в JS примут во внимание :) а то сниппетом вбивать `${JSON.stringify({varName})}` тоже вариант, но не изящный...
@vlaih0
@vlaih0 4 жыл бұрын
Рубишная сокращёнка, запашок от Тайпскрипт... Весело
@t0digital
@t0digital 4 жыл бұрын
Все языки и фреймворки хорошие идеи дёргают друг у друга. Эволюция. Если разобраться, то и руби с TS до фига позаимствовали от других - это нормально
@vlaih0
@vlaih0 4 жыл бұрын
@@t0digital скоро в вакансиях будут требовать прямым текстом знание всего и вся... Ну а что, всё ж похоже))
@t0digital
@t0digital 4 жыл бұрын
Все основные принципы, конечно, похожи, отличается синтаксис и детали. ORM - если ты знаешь, что это и как правильно использовать, нет разницы, пишешь ты на PHP, питоне, руби или джаве
@meskirian
@meskirian 4 жыл бұрын
":=" неееееееееееееее!
@david_shiko
@david_shiko 4 жыл бұрын
Теперь пили видео как апдейтить питон)))
@t0digital
@t0digital 4 жыл бұрын
Из исходников собирается так же, как и другие версии - вот тут показывал kzbin.info/www/bejne/fH3MfIeApt6srNU
@evgenyaa48
@evgenyaa48 4 жыл бұрын
Меньшее количество кода далеко не всегда хорошо.
@t0digital
@t0digital 4 жыл бұрын
Согласно исследованиям количество кода, которое девелопер пишет за день, примерно одинаково для разных языков и технологий. Поэтому если для решения задачи на условном питоне надо написать тысячу строк кода, а на условной Java 2 тысячи строк, то это вполне может означать, что Python команда может сделать проект не за 2 года, а за 1 год - и это весомо. Не думаю, что корреляция настолько явная, но что она есть - факт неоспоримый, чем меньше кода надо писать для решения задачи, тем быстрее задача делается. В случае адекватного pythonic кода он остаётся лаконичным и выразительным => поддерживаемым.
@evgenyaa48
@evgenyaa48 4 жыл бұрын
@@t0digital ещё бы пруфы на исследования, было бы чудесно. Не припомню таких проектов, где именно набрать код было бы проблемой. Большую часть времени приходится тратить на продумывание, курение доков и прочие штуки. Если бы я сидел и набирал код даже 50-60% времени, то мог бы вполне оправдано называться машинистом. А ещё я знаю, сколько времени может теряться, если читаешь код человека, который очень любит часто использовать конструкции вроде тех, о которых говорится в видео. По хорошему, код должен быть понятным даже программистам, не пишущим на питоне. Лучше набрать в полтора раза больше кода, чем потом тратить в три раза больше времени на его поддержку.
@t0digital
@t0digital 4 жыл бұрын
@@evgenyaa48 об этом много кто говорит, начиная от Брукса в его «Мифический человеко-месяц» 1975 года и позднее. То, что код должен быть читаемым и поддерживаемым - 100%, конечно. Не должно быть цели «написать меньше кода» и гори оно огнём, как там это будут поддерживать. Просто банальный hello world где-то 1 строка, а где-то 10, и это не может не влиять на продуктивность, даже если разработчик тратит 60% времени на обдумывание.
@t0digital
@t0digital 4 жыл бұрын
@@channelname501 что именно?
@t0digital
@t0digital 4 жыл бұрын
@@arknexter если сокращение встроено в язык, то это уже зависит не от разработчика, используют все и получается стандартизированный код, одинаковый у всех, что хорошо
@lexkosha
@lexkosha 4 жыл бұрын
Лойс
@romanryaboshtan9270
@romanryaboshtan9270 6 ай бұрын
final - как в java
@wabalrarrt9374
@wabalrarrt9374 4 жыл бұрын
Почему так мало по golang
@t0digital
@t0digital 4 жыл бұрын
Возможно со временем затронем и golang
@MrOwl888
@MrOwl888 4 жыл бұрын
Ну что-то Гвидо уже какой раз вроде всё, да не всё ;) Я правильно понял, что все нововведения - по сути синтаксический сахар?
@t0digital
@t0digital 4 жыл бұрын
Имхо final, новые типы в typing и тп это не сахар. Изменения в f-string, walrus это сахарок, да:)
@mrbush1872
@mrbush1872 4 жыл бұрын
Убеждаюсь , что Java ЯП для того чтоб знать ЯП , а Python - ЯП для того чтоб быстро решать задачи
@MaPeHuH
@MaPeHuH 4 жыл бұрын
Добрый день! Немного понял, но это по причине того, что я ламер :-) А кто такие "катаны"? По японской кружке навеивает однокоренное слово - катана
@t0digital
@t0digital 4 жыл бұрын
Привет! Котаны:)
@LoloKsyu
@LoloKsyu 4 жыл бұрын
А как же shared memory?
@t0digital
@t0digital 4 жыл бұрын
Да, крутая штука для тех, кто использует multiprocessing. Но мы с asyncio пишем, вычислительные задачи не параллелим
@rndofpipowe
@rndofpipowe 4 жыл бұрын
Не понял, в Питоне появилось явное определение типа? Всё, крандец Аде... Пошёл рыдать.
@t0digital
@t0digital 4 жыл бұрын
Что есть явное определение типа? В питоне появились тайп хинты, то есть подсказки IDE по типам
@4bakarovv349
@4bakarovv349 3 жыл бұрын
гительман из мира айти
@alexs8579
@alexs8579 4 жыл бұрын
За обзор спасибо. Ну и что мы имеем на выходе? ну так чисто по философски. 1. лень написания кода заставляет нас двигаться к строчкам на ассемблере, ну разве что без сдвигов регистра. и как следствие... вы давно читали старо-славянские книги? там тоже из лучших побуждений буковки и слова меняли. а теперь требуется человек который сможет это перевести. 2. плодим в каждом языке несущественные изменения в синтаксисе, только потому, что его автор считает так лучше. Я напомню к чему привела нелюбовь дедушки Ленина к букве "Ё". мы до сир пор огребаем это с появлением БД в нотариате и в налоговых. появились фамилии Воробьев или Воробьёв. и это разные фамилии, люди вынуждены в суд обращаться из=за того что им детям поставили Ё или Е. В программировании это еще предстоит это в связи с частыми вводами и отказом поддерживать старый синтаксис. да блин никто не не переименовывает "самолет" во что то другое, потому что это вышло из моды или писать короче. 3. Имхо появление новых языков, и игра с синтаксисом, не более чем перетягивание комьюнити, которое ищет выхода творческой энергии. 4. ну и в подтверждение п.3. мы начинаем типизировать переменные. в языке с динамической типизацией.... Привет.... от чего ушли к тому пришли, ибо выяснилось что нестрогая или динамическая типизация хороша , пока это не программа, а скетч на неё и его легко обозреть, что в Питоне, что в Ноде. В своё время автокад в конце 80-х годов сделал революцию предложив архитектуру, позволявшая дополнять её пользователям. затем в 90-х наш любимый линукс, давший возможности всем внести вклад в общее дело. Ну и фотошоп и по миру понеслась идея, что широкая поддержка комьюнити залог развития программы. конечно и языки программирования не остались в стороне и мы счас при выборе (если он есть) выбираем для проекта где лучшая поддержка тем же самым сообществом. PS ну вот такое моё наблюдение. я только за изменения к лучшему и сбрасывание оков навязанных в своё время гигантами индустрии.
@leorubol6962
@leorubol6962 4 жыл бұрын
Питон под андроид возможно и как?))
@t0digital
@t0digital 4 жыл бұрын
В Android терминале в Termux отлично работает Python даже 3.8
@vladyslavstadnyk2762
@vladyslavstadnyk2762 4 жыл бұрын
Ищи приложение Pydroid
@xm4dn355x
@xm4dn355x 4 жыл бұрын
print(f'{name=}') ??? ЭТО ВООБЩЕ ЗАКОННО???? теперь строки с логами для консоли будут great again)))) это же тупо в два раза сокращает длину строки в исходниках и уложиться в 120 символов рекомендованных в PEP8 станет в 2 раза проще)) пора плавно переходить на 3.8 ))
@t0digital
@t0digital 4 жыл бұрын
Дааа, дико кайфанул с этой штуки. Да, синтаксический сахар, но очень вкусный :)
@jascarkamasonskaja7314
@jascarkamasonskaja7314 4 жыл бұрын
Диджитализируй! АйТи студия вот бы они такую фичу с диктами замутили)))))
@xm4dn355x
@xm4dn355x 4 жыл бұрын
@@jascarkamasonskaja7314 согласен)) постоянно сталкиваюсь с тем, что нужно какую-то конкретную пару ключ:значение выводить для того чтоб вдруг чего баги отлавливать проще было)
@squiretrelawny5769
@squiretrelawny5769 4 жыл бұрын
есть для отладки модуль q - удобный
@squiretrelawny5769
@squiretrelawny5769 4 жыл бұрын
kzbin.info/www/bejne/hX2WdZhud6abg6c
@michurinak_official
@michurinak_official 4 жыл бұрын
Я не понимаю, ну на хрена := это надо, чем вам обычное = не нравится? Кто-нибудь знает, обычное = в 3.8 работает?
@t0digital
@t0digital 4 жыл бұрын
Это работает в 3.8, как и раньше: a = 38
@justkrybik
@justkrybik 4 жыл бұрын
Что ли пайтон изучить...
@TeppopucT
@TeppopucT 4 жыл бұрын
Спасибо за обзор. := дам 6 балов из 10 Ну а в целом, какая-то унылая обнова по сравнению с 3.7
@user-oi1zl6de8i
@user-oi1zl6de8i 4 жыл бұрын
А что в 3.7 было?
@TeppopucT
@TeppopucT 4 жыл бұрын
@@user-oi1zl6de8i ну как минимум asyncio.run python-scripts.com/python-3-7#asyncio-face-lift
@DArkadiy
@DArkadiy 3 жыл бұрын
никуя не понял, но очень интересно
@Yifzmagarki
@Yifzmagarki Жыл бұрын
честно говоря я мягко говоря фигею от этих тупых изменений. 1)Когда я пришел в мир Python из PHP почти 10лет назад, все в python прямо гордились что он не строгой типизации, а теперь только все и делается чтобы сделать его строготипизированным языком, хотя он так раньше и не задумывался 2)пляски возле ООП, после php конечно мне было первое время сложно понять что нет public private и protected и типа пиши что хочешь, но потом стало ок, и никаких проблем, а теперь через жопу это пытаются сделать типа через final и прочие вещи, . Я вижу аналогичные тренды что были в PHP , в разные время пилить комплятор приходили люди из разных языков С,JAva и т.д и каждый становился диктаторов, вижу сейчас в питон пришли люди из языков строгой типизации и пошли typehint , строгое позиционирование и прочие прелести, и теперь каждый новоявленный питон разработчик считает что без typehint это уже гавнокод . 3)Если программист не может нормально код написать, то никаких приблуды ,никакие IDE подсказки ему не помогут, Вижу что питон пошёл не туда, и я уже стал смотреть в сторону C++(возратиться) или GO. Такой анархии и шатаний из крайности в крайность там меньше
@user-vito-kuk
@user-vito-kuk 4 жыл бұрын
До сих пор не понимаю, чем python лучше ruby, если завозимые фишки питона уже как годы существуют в ruby ... f' - интерполяция строк уже давно используется в ruby по типу #{var} type - в руби не нужно подключать дополнительно модули ни типы, ruby уже знает что 4 - это int, 'str' - это string ruby медленный, а python быстрее - twitter.com/mmmandel/status/1200585514463698944 )))) Холивары холиварами, главное чтобы инструментом было удобно пользоваться и он выполнял свои задачи !
@t0digital
@t0digital 4 жыл бұрын
Да, все языки и фреймворки друг у друга фичи переносят, кто-то что-то бодрое у себя внедрил - через год-два это уже у всех. Любой язык хорош, когда ты и твоя команда хорошо на нём пишет:)
@user-vito-kuk
@user-vito-kuk 4 жыл бұрын
Диджитализируй! АйТи студия все верно, спасибо за интересный контент )) 👌👌👌
@justkrybik
@justkrybik 4 жыл бұрын
До сих пор не понимаю зачем и как мерить какой язык лучше...
@user-kh7nl8sv1j
@user-kh7nl8sv1j 4 жыл бұрын
На самом деле релиз ужасный, ничего толкового не даёт, но добавляет сахара и читать код становиться сложнее. На async io писать вообще не возможно, дебажить сложно, ядра нормально не грузит, вообщем одна печаль
@t0digital
@t0digital 4 жыл бұрын
Мне нравится, как развивается asyncio в Python, все эти asyncio.run, сокрытие низкоуровневых методов, которыми надо раньше было пользоваться. И на aiohttp можно очень бодрые асинхронные веб-сервисы делать, или наоборот использовать aiohttp для параллельных запросов в кучу сервисов
@user-kh7nl8sv1j
@user-kh7nl8sv1j 4 жыл бұрын
​@@t0digital Сам пишу на питоне 5 лет и очень его люблю, это скорее просто мои ощущения - Отлаживаться очень сложно, код избыточный и читать его стало сильно сложнее чем синхронный - Куча легаси и одноименных структур, к примеру есть два типа Future и один с другим работать не будет, если почитать кишки там еще много всякой черной магии и это пугает - Есть проблемы с ивент лупом, к примеру если создать пару ивент лупов и создать 1 таску, то дальше она сможем обрабатываться только тем ивент лупом который ее создал - Есть большие вопросы о том как правильно ловить исключения во вложенных корутинах, вообще обработка неявных исключений это просто боль при асинхронном программировании - По ощущениям люди пишут код дольше и ловят больше багов именно на асинхронном питоне - У себя в кампании заметил что рост производительности в проектах на бою не больше 30%, а сложностей возникает сильно больше - Как уже говорил, очень сложно заставить питон выжирать все ядра, с учетом что процессоры в последнее время растут именно ядрами, а не производительностью отдельных ядер, это становиться вообще печально Не то чтобы все что я написал делает невозможным писать код на asyncio, но в сухом остатке прирост небольшой, а приседаний много P.S По поводу 3.8 лучше бы нормальный switch case завезли)
@demty123abc
@demty123abc 4 жыл бұрын
Грустно, на самом деле, наблюдать куда идет язык: тайпинги начинали за здравие, а заканчивают за упокой (Я про всякие TypedDict, определение собственных типов и тд, чтобы линтер не ругался и точнее работал); @final, :Final, которые имеют разные написания и применение; @overload, который вообще меняет концепцию языка; дженерики, чтобы уложиться в тайпинги. Вроде бы и прикольно, но так глядишь через пару лет непонятно, а зачем питон нужен-то (хотя и сейчас вопрос открытый), если он дефакто становится строготипизированным (наверняка с докрученными тайпингами придет и повсеместное их использование как хороший тон). При этом питон все так же слаб как ООП язык и как язык для серьезных приложений, а с такими нововведениями неясно, зачем он, если есть условная джава, где все грабли уже пройдены, ФП уже есть, да и быстрее работает. Рано или поздно, кмк, тайпинги появятся и в рантайме (чтобы быстрее работало) и тогда вообще станет непонятно, а зачем он как язык нужен-то? При этом еще одна киллерфича питона - низкий порог вхождения, тоже постепенно исчезает, причем очень резко: условный студент пишет себе лабы, знать-не знает о том, что тайпинги существуют и вообще пишет все в одной функции, а потом приходит в реальный проект и видит линтер на линтере, перегрузку методов, модификаторы доступов и все это приправлено колхозностью реализации, костылями (Any) -> Any и т.д., т.к. на питоне так никто не привык писать и только пытаются найти как, собственно, надо. Вышел прям крик души :) Спасибо за видео, испугался знатно :)
@seeyou7080
@seeyou7080 4 жыл бұрын
demty123abc Условному студенту нормальные преподаватели надают по шапке за реализацию всего кода в одной функции. И если этот же студент идёт в питон из-за низкого порога вхождения и пугается типизации даже на уровне рекомендаций, а также боится таких элементарных составляющих ООП как перегрузка методов, то тут вопросы уже к самому разработчику, по-моему. Уж знать об их существовании программист должен, даже если основной его язык это Python.
@demty123abc
@demty123abc 4 жыл бұрын
@@seeyou7080 Ну уже появляется "нормальный" преподаватель, наверно и студент должен быть "нормальным" и т.д. Я вел к тому, что в питоне тайпинги - не обязательная часть языка и скорее всего никогда не будет таковой (ради обратной совместимости, простоты использования и тд), и мотивации учить как оно работает - особо нет, ведь и так работает, в то время как все то же самое в какой-нибудь джаве - часть языка и изучить ее без этого невозможно.
@user-oq5sd3pi1b
@user-oq5sd3pi1b 3 жыл бұрын
Лично мне Java разработчику не нравится Python. Он какой то для меня беспорядочный. Где что хочешь объявляй, где что хочешь присваивай, все переменные пишутся без объявлении.
@t0digital
@t0digital 3 жыл бұрын
Python: name = "Привет" Java: String name = "Привет"; Разница столь огромна и версия Java вам нравится больше:)?
@user-oq5sd3pi1b
@user-oq5sd3pi1b 3 жыл бұрын
@@t0digital))) просто я в Java с 2004 года. И для меня раздражительно смотреть, что переменную объявили без типа...это уже рефлекторно в голове вопрос: эммм..так какого типа name? String, char, int, double, vectror, аа может Object? Да..еще..немного копался в python и заметил, он лучше справляется с аналитикой текстовых/строковых данных чем Java. К примеру с JSON или tuple arrays..
@user-oq5sd3pi1b
@user-oq5sd3pi1b 3 жыл бұрын
Так же лучше делает аналитику, чем SQL Analytics..ну может на равне.
@user-oq5sd3pi1b
@user-oq5sd3pi1b 3 жыл бұрын
Я помню в начале 2000 годов ходил в магазин покупать книги по программированию. Тогда книжки по Питон пыльные лежали на полке. Никто не интересовался.
@t0digital
@t0digital 3 жыл бұрын
Мне кажется, в начале нулевых книжки были только по Java, PHP, немного Delphi и Visual Basic, питон совсем не в почёте был. Эх помню по бейсику такая синенькая была))
@824pavel
@824pavel 4 жыл бұрын
Не морочте голову людям своим Питоном и учите Перл, ибо в нем вся сила, коей нет в вашем тормознутом, ограниченном Пайтоне.
@t0digital
@t0digital 4 жыл бұрын
Ну да ну да, перл, ага
@andreyrudin2286
@andreyrudin2286 4 жыл бұрын
и эти люди ругают PHP :-) рука лицо. я не про Вас лично. я про питонистов, которые вечно хейтят PHP )))
@t0digital
@t0digital 4 жыл бұрын
Я не хейчу - мне во многом нравится PHP, но есть вполне объективные минусы у PHP, так же как есть и вполне объективные минусы Python и любой другой технологии:)
@legendabs1110
@legendabs1110 4 жыл бұрын
А я могу зарабатывать на фрилансе, если у меня тока телефон и клавиатура,просто у меня пк здох
@t0digital
@t0digital 4 жыл бұрын
можете)
@legendabs1110
@legendabs1110 4 жыл бұрын
@@t0digital другие говорят что нельзя пррграммировать на веб)
@t0digital
@t0digital 4 жыл бұрын
@@legendabs1110 если они запрещают, то нельзя, конечно:))) а если они в целом не против, то можно попробовать
@des_troy_er
@des_troy_er 4 жыл бұрын
Хоть питон и компактный язык , но бля над ним еще столько работать , конкретики в нем точно не хватает
@t0digital
@t0digital 4 жыл бұрын
оО конкретики это как)? В любом ЯП все выражения на 100% конкретны, потому что делают вполне чётко прописанные действия
@mechmaker9346
@mechmaker9346 4 жыл бұрын
Вот это нововведение... Проблема таких нововведений в том,что это костылии. Они не сделаны с помощью языка и не работают по его правилам. В том же haskell разные библиотеки могут работать совершенно по разному и ощущаться также совершенно по разному. При этом несмотря на наличие в языке костылей эти костыли подчиняются общим законам. Вот что значит хорошо спроектированный язык. А не то,что питон... Да и нововведения эти практически ничего не меняют...
@t0digital
@t0digital 4 жыл бұрын
Что именно является костылём из новинок в 3.8? Сокращение f'{name=}' вместо f'name={name}' :)? Или новые типы для линтеров?
@snarksnark5038
@snarksnark5038 4 жыл бұрын
не понимаю всех этих постоянных "нововеденний" на протяжении нескольких десятков лет когда в таких языках как ада или оберон все есть уже с самого начала.Сам начал как дурак учить программирование с питона пока не понял что все программироние на этом языке состои из постоянной возне в синтаксисе.
@t0digital
@t0digital 4 жыл бұрын
Это в питоне возня с синтаксисом, вы серьёзно? Банальный Hello World в питоне - 1 строка, в то время как в Java/C/Oberon - 5-11 строк. print("Hello World!") - это возня с синтаксисом? MODULE HelloWorld; IMPORT Out; BEGIN Out.String("Hello World!"); Out.Ln; END HelloWorld; а это не возня)?
@snarksnark5038
@snarksnark5038 4 жыл бұрын
@@t0digital когда программа на питоне достигает 10-15 тысяч строчек и надо что то изменить вся эта "скоропись" быстро аукается.Многие питон разработчики не могут разобраться даже в собственном написанном всего то 3 месяца назад коде.
@t0digital
@t0digital 4 жыл бұрын
@@snarksnark5038 наговнякать можно на любом языке, и на любом языке можно написать конфетку с очень приятной поддержкой кода в будущем, это не аргумент ни за питон, ни против
@sipan_4604
@sipan_4604 4 жыл бұрын
Это не python, это хрень.
@t0digital
@t0digital 4 жыл бұрын
Где)?
@sipan_4604
@sipan_4604 4 жыл бұрын
@@t0digital это не синтаксис пятона
@t0digital
@t0digital 4 жыл бұрын
Согласен, это не пятон)
The Worlds Most Powerfull Batteries !
00:48
Woody & Kleiny
Рет қаралды 17 МЛН
WHY IS A CAR MORE EXPENSIVE THAN A GIRL?
00:37
Levsob
Рет қаралды 11 МЛН
格斗裁判暴力执法!#fighting #shorts
00:15
武林之巅
Рет қаралды 90 МЛН
MOM TURNED THE NOODLES PINK😱
00:31
JULI_PROETO
Рет қаралды 14 МЛН
Реакция японцев на русских #Shorts
1:00
Alina Rin
Рет қаралды 10 МЛН
Защита SSH-сервера - порты, ключи, port knocking, iptables
28:50
Диджитализируй!
Рет қаралды 50 М.
⚡Python 3.11 - СКОРОСТНОЙ горячий пирожочек!
21:42
Диджитализируй!
Рет қаралды 87 М.
The Worlds Most Powerfull Batteries !
00:48
Woody & Kleiny
Рет қаралды 17 МЛН