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

preview_player
Показать описание


Уже в октябре 2019 выходит релиз Python 3.8, а значит самое время познакомиться с его новыми фичами! Заодно обсудим уход Гвидо ван Россума с поста Великодушного Пожизненного Диктатора Python, который произошёл в процессе обсуждения новой функциональности версии 3.8.

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

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

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

Рекомендации по теме
Комментарии
Автор

очень круто сделал отображение кода на экране!

rmatveev
Автор

Для тех, кто не понял, := это одновременно объявить и передать объект в качестве операнда. Раньше было так:
a = 5
if a > 10:
pass
Скоро станет так:
if a := 5 > 10:
pass

aaaaaaayyyyyyyyyyyyyy
Автор

Эх, медленно подписчики растут, похоже, пора пилить видео «самый лучший способ взломать Пентагон в 2019м», «как выучить Python за час», «как программисту заработать миллион» и «программируем утюг»:)

tdigital
Автор

3:40 я думаю ты показал неудачный пример, так как это и раньше не работало. У тебя кейворд аргументы функции называются x, y. А ты в вызове пытаешься присвоить значение по имени a, b.

dimamiskevich
Автор

Мужик прошу продолжай!
Очень хорошо объясняешь!
Смотреть приятно

fullaccount
Автор

Да, новая фича с f-string мне понравилась.))

vovergg
Автор

А теперь давайте сравним первый пример с аналогичным фрагментом на 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

Почему нельзя обойтись одним '=' ?

shurko
Автор

Просто офигенные новшества! Circular dependency так и не пофиксили, что ограничивает строгую типизацию. Зато добавили бесполезный синтаксический сахар и какие-то старые фичи из других языков, называя всё это новшеством. Аналог TypedDict есть, например, в Angular. А, интересно, нормальный dependency injection в Python/Django где-нибудь есть? Модификатор final вообще порадовал! Я, конечно, новичок в Python, но я не знал, что он только сейчас появился!

sidorovich
Автор

Вот Вам омментарий: 4 месяца впустую считай. Ф строка: f"{n=}" - и мое сердце и пальцы перестали двигаться.
4 месяца впустую.
Это как вычислять фибоначи от 10**10**10**10 без использования опиимизирующих алгоритмов.
И ждать 200 лет, а не 2 минуты.

karandalliik
Автор

Вещи дядька говорит, придётся подписаться.

ИванИванов-нтъ
Автор

Ого, задатки строгой типизации, так вот что значит " сначало заберите что было, а потом верните", пусть это не о питоне, а о другим языках, но тем не менее

arcsin
Автор

Огромное спасибо за видео, всегда по дело у очень полезно!

MrVindor
Автор

Крутой канал, почему я раньше тебя не замечал?

paravozpendos
Автор

Новые фишки конечно интересно, но как на счет оптимизации работы пайтона? В этом направлении ничего не меняется у него?

MavelRoll
Автор

Привет! Нашёл тебя недавно. Классно и легко смотреть, спасибо за хороший звук и отсутствие "эммм" и прочего.
Имхо, можно так же в подобных видео добавлять чуть больше развёртывания, нежели "вот вам TypedDict”
Если глянуть твоё видео про работы со сложными структурами, можно сделать вывод, что typeddict - тоже самое, что и namedtuple, основываясь на примерах, которые ты приводишь. И может сложиться представление, что этот тип в 3.8 - бесполезен (да, да, все мы знаем, что ничего в языки программирования не добавляется просто так)((кроме очередной библиотеки в JS)). В то время как на самом-то деле разница есть.
Это просто обратная связь, не держи зла)

Гошка-мб
Автор

Смысл подключать лишний модуль, если есть:
`requests.__version__`


(двойное нижнее подчеркивание)

MaratYarulin
Автор

Мде, нормальный оператор этот в итоге :=, и че все орали не разобравшись.

nioring
Автор

Тю. А в пыхе испокон веков объявить и передать объект в качестве операнда без никаких "моржей" :)

germanmalinovsky
Автор

идея для будущих видосов... написание реальной библиотеки... со всем процессом.. билд, тестирование, можно CI захватить... и т.д.

daurensdykov
Автор

Спасибо! Ибо, познавательно и как всегда интересно ;-)

toster