Тёмный

Дженерики в Python 3.12 - Обзор и лайфхаки 

Артём Шумейко
Подписаться 28 тыс.
Просмотров 9 тыс.
50% 1

💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gxT 💡
Предзапись на курс по поиску работы разработчику и техническим навыкам для Middle: forms.gle/Zw7bPnQvTsfekVH47
Забирай роадмап изучения самого востребованного фреймворка на Python - FastAPI здесь: t.me/ArtemShumeikoBot
Пишу про свой проект для подготовки к собеседованиям, рынок труда и способы развития разработчиков в телеграм канале - подписывайся: t.me/artemshumeiko
Python сообщество в телеграме (здесь тебе помогут с любым вопросом): t.me/python_community_rus
Поддержать меня и получить ранний доступ к видео можно здесь: boosty.to/artemshumeiko
Показываю, как работают дженерики в Python 3.12.
#шумейко

Опубликовано:

 

30 апр 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 49   
@artemshumeiko
@artemshumeiko Месяц назад
💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gwP 💡 Забирай роадмап изучения самого востребованного фреймворка на Python - FastAPI здесь: t.me/ArtemShumeikoBot
@user-tq9bu6ki2h
@user-tq9bu6ki2h Месяц назад
С чего это вдруг динамическая типизация -- недостаток? Зачем вообще делают ЯП с динамической типизацией? Потому что статический анализатор написать не получилось?)
@DimaSamehada-vm7fw
@DimaSamehada-vm7fw Месяц назад
Потеря производительности + сложность отладки и обнаружения ошибок
@naugad2
@naugad2 Месяц назад
да. потому что хотели упростить язык а такой статический анализатор как например у F# сразу не спроектировали. а потом язык взлетел и уже поздно делать ломающие изменения
@user-zl5sp9yh1n
@user-zl5sp9yh1n Месяц назад
Охуж эти дженерики. Я такой на TS съел, чуть не отравился😂
@AHTOH_IO
@AHTOH_IO Месяц назад
Да норм. Дженерики и в курсе по фастапям пригодятся) полиморфные репозитории можно делать
@ufc_uz6
@ufc_uz6 Месяц назад
Артем при вызове функции как использовать дженерики как в ts?
@xpaladin4568
@xpaladin4568 Месяц назад
А что же будет после 31-го мая, другой курс?) Пока что звучит как выстрел себе в ногу
@artemshumeiko
@artemshumeiko Месяц назад
Нового курса не будет. После 31 мая нельзя будет попасть на курс. В течение этого года хочу сделать рефокус с курса на свой IT продукт, на это нужно время. Поэтому я набираю тех людей, кто хочет изучить backend разработку и найти работу разработчиком, и закрываю вход.
@raymond4193
@raymond4193 Месяц назад
Крутая вещь, но возникает вопрос. Как тогда проверять, что наш тип, который будет возвращать функция, например, является интеджер, или как сделать чтобы он был только интеджер?
@user-sz5yn3fk8d
@user-sz5yn3fk8d Месяц назад
Писать функции на плюсах 😂
@klayd4009
@klayd4009 Месяц назад
Проверку типа можно организовать через isinstance. Однако в питоне нет возможности через сам TypeVar проводить манипуляции с типами, поэтому только так.
@gleb29
@gleb29 Месяц назад
Артём, привет, почему так моргает свет в начале?
@artemshumeiko
@artemshumeiko Месяц назад
потому что я экспозицию на камере не научился настраивать :/
@romanbush5164
@romanbush5164 Месяц назад
ничоси 😳 не зря я с# изучал 🤣
@user-iv3eh4hp3z
@user-iv3eh4hp3z Месяц назад
кст да, я тоже шарп учил. Почти всё, что там есть под капотом у шарпа, в питоне подключается отдельно) но нет крутой лямбды, как в шарпе - увы
@tolb1517
@tolb1517 Месяц назад
Ок.
@mndtr0
@mndtr0 Месяц назад
Я, конечно, люблю питон (мой первый язык как никак), но от таких нововведений появляется ощущение, что они (разрабы) пытаются догонять другие языки в плане строгой статической типизации. Невольно появляется мысль "может сразу использовать джаву или шарп"... Но его сахарный синтаксис в каком-то смысле того стоит. Вот бы быстрый типизированный язык с удобным синтаксисом питона
@set1qs
@set1qs Месяц назад
Что за IDE? Это Pycharm?
@klayd4009
@klayd4009 Месяц назад
Да
@artemshumeiko
@artemshumeiko Месяц назад
да, PyCharm Professional
@set1qs
@set1qs Месяц назад
@@artemshumeiko Просто тема приятная и шрифт, иконки ) Пытаюсь настроить так же, но чёт безуспешно (
@DimaSamehada-vm7fw
@DimaSamehada-vm7fw Месяц назад
@@set1qs так у него дефолтная тема и шрифт тоже дефолтный JetBrains Mono
@mndtr0
@mndtr0 Месяц назад
@@set1qs включи новый UI
@andviktor
@andviktor Месяц назад
Выглядит как что-то, что делает код крайне трудночитаемым. Конструкция func[T](param: list[T]) -> T - это жесть.
@artemshumeiko
@artemshumeiko Месяц назад
тут дело времени раньше тоже было тяжело смотреть на такое. Сейчас норма
@andviktor
@andviktor Месяц назад
@@artemshumeiko надо пробовать, но кстати в коде модулей стандартной библиотеки не встречал таких штук почему-то, видимо экзотика
@user-fw7lk4wt6w
@user-fw7lk4wt6w Месяц назад
Только полный гуманитарий будет назначать одной и той же переменной разные типы. Или он не ПРОЕКТИРУЕТ свои программы, прежде чем начнёт их писать?
@artemshumeiko
@artemshumeiko Месяц назад
всмысле? В питоне все так делают, динамическая типизация же)
@Behruz-pr2oi
@Behruz-pr2oi Месяц назад
это как в реальных проектах использовать
@artemshumeiko
@artemshumeiko Месяц назад
начать можно с небольших полезных функций (utils/helpers), их можно перевести на дженерики. Например, как в видео, функция, которая из последовательности данных извлекает первый ненулевой элемент
@Anonim-im6ln
@Anonim-im6ln Месяц назад
Ого, що це?
@slmpnv
@slmpnv Месяц назад
Кто такие дженерики?
@andrewbondaryuk
@andrewbondaryuk Месяц назад
Это в java, net, go, rust. Есть template в плюсах. Общий код для разных типов. Например без дженериков/шаблонов для списков значений int, double нужно будет делать две реализации. С ними - одну.
@Mytest437
@Mytest437 Месяц назад
по простому: если ТипЗначения представить значением, то дженерик это переменная в которых их хранят и описывают функции не конкретными типами, а через эти переменные)
@user-kz5tp8zs8n
@user-kz5tp8zs8n Месяц назад
Дженерик это дешевый аналог бадов
@borismoiseev8456
@borismoiseev8456 Месяц назад
Все проще простого воспринимай это как универсальные типы, которые можно изменять по обстоятельству динамически
@user-ut9xm3zi1i
@user-ut9xm3zi1i Месяц назад
Порода хомяка
@user-bn5np9dl3s
@user-bn5np9dl3s Месяц назад
Странная практика буквы использовать. Это у вас в компании так принято? Почему [int] не написать?
@artemshumeiko
@artemshumeiko Месяц назад
так в этом суть дженериков. Делать функции с общим типом, без привязки к конкретному типу
@mndtr0
@mndtr0 Месяц назад
В шарпе тоже принято в качестве дженерик-типа писать T или T + , например TKey, TValue
@Mytest437
@Mytest437 Месяц назад
У языка Python нет минусов. Просто не надо язык, который был придуман для обучения новичков/скриптинга/прототипирования использовать для ВСЕГО. Конечно когда начинаешь все больше писать на нем промышленный код, тебе кажется что у него есть недостатки. А потом такие писальщики через пять лет, когда бекенд начинает загибаться, переписывают какую-то часть на производительных языках Go/Rust/C и такие с глазами по пять копеек.... о производительность в десять раз стала круче 😁😁 тучи развинулись, и молния Зевса открыла новый мир)
@__.X3.__
@__.X3.__ Месяц назад
Сомнительно. Бизнесу нужно быстро, +уже во время разработки у бизнеса часто меняется требования и даже архитектура. В таких случаях "промышленные" языки могут отсохнуть и отвалится. По производительности, в какие сто раз может увеличится производительность, если основное время тратится не на обработку, а на транспорт данных по сети (т.е. фактор одинаковый для всех языков). Да и всегда ли производительность приоритет у бизнеса?
@redneck_prm5429
@redneck_prm5429 Месяц назад
Дык для того и завозят в питон опциональную статическую типизацию, чтобы потоптать поляну более серьезных языков. Ибо доступен как профит динамического языка с его выразительным синтаксисом, так и надежность и удобство поддержки кода, которую дает типизация. А скорость и потребление железных ресурсов за пределами настоящего хайлоада мало кого волнует. Ибо это в любом случае копейки на фоне стоимости разработки.
@__.X3.__
@__.X3.__ Месяц назад
@@redneck_prm5429 т.е. типизация делает питон серьезным? а если делает получается у питона вышло совместить динамику и синтаксис с надежностью? и вряд ли кто то умышленно хочет потоптать поляны других языков, скорее собственный путь
@Mytest437
@Mytest437 Месяц назад
@@redneck_prm5429 Все эти Python/Mojo Javascript/TypeScript свою работу делаю на "пол шишечки". Не вижу я в этом хороший архитектурный путь. Всегда там все внедряется на половину, потому что нужно ж сохранять совместимость с динамичным языком. Плюс они портят и размывают границы там где работу могут выполнять например джуниоры и их кусок пишется на скриптовых простых языках, а хардовую часть опытные разработчики пишут отдельно на предназначенном языке. И таким образом джуниор до поры времени не сталкивается с сложным кодом и не лезет туда куда не надо. А так какой смысл языка "для начинающих" если приходишь в компанию, а там на нем все написано и надо уже круто шарить. "...А скорость и потребление железных ресурсов за пределами настоящего хайлоада мало кого волнует..." во первых плох тот проект, который не стремиться стать хайлоад. Странно писать сайт, которому завтра ты не хочешь популярности. А во-вторых ты просто не знаешь, какой твой проект завтра станет популярным. А вдруг он взлетит резко, потому что интересную программу/сайт написал. Нагрузка прет, а пересесть на другие технологии часто не получиться просто и дешево. Да Python Javascript дают быстрый взлет, но всегда за быстрым наспех скроенными проектами тянется долгосрочные последствия по поддержанию этого проекта.
@Mytest437
@Mytest437 Месяц назад
@@__.X3.__ Ну во первых есть разные задачи и сайты, не везде транспорт это львиная обработка, особенно так где сайт это онлайн-программы. во-вторых обработка транспорта тоже делается на каких то языках. И почему то в тестах фреймверков, когда меряются количеством фпс, я не сильно видел в лидерах фреймверки на Python. А лидерство берут все те же Go/Rust/C и т.д. Так что не отсохнут и не отвалятся 😄
Далее
Обзор ЛЮКС вагона в поезде
01:00
Просмотров 763 тыс.
Python 3.12 Generic Types Explained
18:27
Просмотров 57 тыс.
New Features You Need To Know In Python 3.12
12:04
Просмотров 177 тыс.
Обзор ЛЮКС вагона в поезде
01:00
Просмотров 763 тыс.