Аннотации типов в Python | Почему не используешь?
ฝัง
- เผยแพร่เมื่อ 12 พ.ย. 2023
- Видеокурс уроков программирования на Python для начинающих.
Что такое аннотации типов, аннотации функций в Python и почему нужно использовать в своем коде.
🔥 Доступ в приват | Поддержать проект:
boosty.to/pythontoday
/ pythontoday
yoomoney.ru/to/410019570956160
🔥 Стать спонсором канала:
/ @pythontoday
****Ссылки****
Дешевый/надежный сервер в Европе + СКИДКА 10%:
vdsina.ru/?partner=858b36ud3p
Дешевый/надежный сервер в Европе:
zomro.com/?from=246874
promo_code:
zomro_246874
Хороший proxy сервис:
proxy6.net/a/149995
Распознавание текста с изображения на Python
• Распознавание текста с...
Парсинг динамического сайта на Python + Telegram бот на AIOGram
• Парсинг динамического ...
Фриланс, зарабатываем 5000р на парсинге | Выполняем заказ на фрилансе
• Парсинг на Python, Sel...
Парсинг криптобиржи | Торговый бот | API криптобиржи:
• Парсинг криптобиржи | ...
Как отправить письмо с вложением на почту с помощью Python | Email рассылка
• Программы на Python | ...
Асинхронный парсинг на Python | Ускоряем код в 10 раз
• Асинхронный парсинг на...
Python код в EXE файл:
• Python в EXE
Пишем Telegram бота на Python + Загружаем Telegram бота на сервер(хостинг):
• Пишем Telegram бота на...
Плейлист по распознаванию лиц на Python:
• Распознавание лиц | Fa...
Плейлист по парсингу сайтов на Python:
• Парсинг/Scraping
Плейлист по Instagram боту:
• Instagram Bot на Pytho...
****Соц.сети****
Telegram: t.me/python2day
В питоне 3.10 давно можно аннотировать без Union: list | None например. Можно ещё аннотировать написанные обьекты.
4:31 Это неверно. Если нет ретёрна, то питон неявно подставляет `return None` и функция завершается нормально, тип возвращаемого значения `-> None`.
Ты почти прав, когда говоришь "допускаем что функция не завершается нормально", только правильнее не "допускаем", а "гарантируем". Например, если функция всегда(!) выкидывает исключение или уходит в бесконечный цикл. Если ты после вызова функции `greeting() -> NoReturn` напишешь что-нибудь, тебе VSCode затемнит код и напишет "Код недоступен", т.к. до этих строк выполнение никогда не дойдёт.
1:57 typing.List лучше не использовать, он устарел и будет в будущем выпилен из питона. Вместо этого используйте просто обычный list, например `list[str]`.
3:52 Не ошибка, но для простых комбинаций можно просто через pipe `|` написать. Например `a: float | int`.
Благодарю за фидбэк и разъяснение!
всё-так стоит ещё учитывать, под какую версию идёт разработка: list[str] - будет ругаться до 3.9, a: float | int - будет ругаться до 3.10
а ещё автор не указал, что есть библиотеки, которые используют аннотации типов, например, для валидации
Только что начала изучать аннотацию типов и при них нечего не понял, но тут ты всё понятно объяснил. Спасибо
я починав свій шлях програмування із типізованих мов, бородатого Паскаль, С+ та Java тому мені увійшло в звичку прописувати типи даних навіть в Python. Особисто я вважаю анотації типів дуже корисною річчю. До речі, раніше я не знав, що інтерпритатор ігнорує анотації. Авторе, дякую. Було корисно та інформативно як завжди
Какое совпадение! Я только начал использовать аннотации типов, и тут сразу выходит целое видео по этой теме)
Аннотации типов часто использую. Очень удобная штука, если честно. Код выглядит в разы симпатичней и понятней для других и себя в том числе.
Это откат к временам С . Ничего удобного, лишняя писанина.
Донесено всё простым языком и всё понятно
Спасибо за поддержку!
УРААААААААА, НОВЫЙ ТОП-ВИДОС!
Безумное раздолбайство, конечно: указывать сигнатуру и плевать на нее с дроболитейной башни. Спасибо!
Вот только вчера хотел погуглить как и зачем это используется. Спасибо!
Спасибо за фидбэк! Рад что полезно!
Благодарю за информацию!
Как раз в айограм попадались такие конструкции, интуитивно догадывался для чего они, сейчас стало ясно.
Благодарю за фидбэк!
Класс видосы, скажи пожалуйста, а есть видео для парсинга авито? чтоб все данные можно было потом выгрузить в Эксель и для дальнейшей сортировки, все данные чтоб были в таблице по запросам? Заранее спасибо
Как-то поверхностненько )
АФАИК указание типов применяется не "для коллег-программистов", а "для IDE".
Чтобы IDE вопило-ругалось про несоответствие. Потому что самому питону чихать на типы и ошибки с ними.
ОООчень мало, точнее почти нет, про составные типы. Когда переменная или функция могут иметь разные типы значений.
Как минимум, возвращать (None или что-то).
В каментах уже указали, что Uniion это bad practices. Т.ч. тема точно требует освещения.
(да и как-то ни разу не видел uniion в реальном коде, только "тип|тип" и т.п..)
Т.ч. за почин зачет. Однако, тема требует развития и углубления.
Желательно, сразу с примерами, как оно будет в популярных IDE.
Например, мне не удалось убедить pycharm корректно обрабатывать составные типы возвращаемых значений. Пока забил, но хотелось бы понять что не так с этим чудо(вище)м программизма.
Спасибо
Спасибо!
PythonToday пора бы запилить видосик по парсингу авито
Вроде бы вместо Union можно использовать оператор | к примеру int | float, а вместо NoReturn, -> None поправьте если ошибаюсь
пайп вместо union c 3.10, а с NoReturn автор не изучил сабж до конца, название аннотации ввело в заблуждение )
Познавательно! Спасибо за видео
Отличное видео, все понятно объясняете, однако)
Благодарю за фидбэк!
Возможно, тоже есть на канале -- было бы неплохо осветить тему использования raise.
В каких случаях какие типы ошибок правильнее использовать.
Как минимум, разница между ValueError и RuntimeError.
Если оба этих варианта можно применять после проверки значений.
Например, в функцию приходит параметр -- проверяется, "упс, пустой". Как понять, это ошибка значения или ошибка выполнения?
Если не ловить эти ошибки в вызывающем коде, то разницы никакой -- скрипт упадет в любом случае. А если фильтровать по except -- то уже появляется разница.
Пришёл с версии 3.4 Если честно, не понимаю, как лишняя писанина улучшает понимание кода, если для других, то в докстринг можно указать. Не, может где-то и полезно, но выглядит ппц непривычно для меня...
Действительно очень полезная вещь и крайне странно редко это видеть в реальных проектах. Было бы клево чтобы аннотации еще и приводили к ошибкам при неверном типе данных. Пришлось бы меньше тестов писать. НО это так мечты....
Это в Java вроде бы так.
@@Trezvy_Papa это в любом языке со статической типизацией так
Еще интересна тема про сравнение IDE в плане "полезность/пожирание ресурсов".
Недавно обратил внимание, что pycharm пожирает 4..6 гигов памяти на простом файлике в пару тысяч строк.
Как-то это дофига )
Возможно, на канале уже есть такие ролики?
Особенно интересны моменты, если такие реально есть, вроде: написал "import tensorflow as tf" -- и пайчарм отожрал гиг памяти. Написал еще импорт-другой и еще отожралось.
Или дело совсем не в этом )
Пайчарм много кеширует например для мгновенного поиска по проекту. И именно поиск в нем мегаудобный
всем привет. напишите пж кто шарит, стоит ли начинать с питона, т.к. на данный момент питон учат все кому не лень и соответственно очень много джунов питонистов и на 1 вакансию дохера людей собираются, будут ли проблемы с поиском работы в дальнейшем ?
Все очень плохо! NoReturn, ТОЛЬКО для функций которые ОБЯЗАТЕЛЬНО вызывают исключение. Давно не используют List, потому что есть list, а вместо Union используют |
автору два, что безответственно подошёл к этой теме 😁много комментов именно по этим 3 пунктам
Всем привет . Подскажите какие-нибудь каналы в телеге с комьюнити по питону..либо просто по программированию! Буду крайне признателен. Всем добра !
неплохо
Ты не прав. Не знаю, когда появилась такая возможность, но в 3.10+ поддерживаются типы str, int, float, bool, list, tuple, dict, None как минимум. Это те, которые я использовал. Я всегда после написания проекта делаю аннотацию типов. И я никогда не использовал устаревший модуль typing. Всё, что есть в typing, можно сделать аннотацией. Не вижу смысла его использовать...
Очень нравится твой канал, но после плейлиста по парсингу такие короткие видео ни в какое сравнение не идут.
Есть МНОГО полезных видео у тебя на канале.
Возможно, у тебя просто стало меньше времени, чтобы снимать видео, но можешь делать хотя бы средние видео, например по интересным библиотекам, которыми делишься в телеграмме, либо про что-то другое.
Тот же самый бесплатный ChatGPT на канале очень помогает мне учиться алгоритмам, так что спасибо.
P.S. Аннотации типов - это отличная вещь.
Ты очень классно объясняешь, но в этот раз очень сжато расскрыл тему.
Надеюсь, комментарий поможет тебе чем-то.
Успехов и удачи🍀
Final и NoReturn я ещё не пользовал 🤔
Кто не использует? Я не использую? Я использую!
Красавчик! Я использую очень редко, лень :(
Часто встречал это в проектах на гитхабе, даже боялся трогать это ) а это оказывается сделано чтобы как раз мне было легче😅 спасибо тебе за крутые видосы❤
Спасибо за поддержку и крутоей коммент) Рад что полезно
Аннотации типов удобны в ООП: редакторы кода подтягивают методы и свойства указанных классов.
Кошка то будет???
Прикольненько. Так скоро Питон в Шарпа превратится :) Однако, лично мне, после всяких там си-подобных языков очень режет глаз это: *count: int = 14* Вообще логики не вижу и глаза слезятся... Ну просится же: *int: count = 14* !!! НУ КАК ТАК ТО? :)
после паскалья не режит )
@@vhavagyan удивился... полез гуглить... офигел... Когда я учил Паскаль 30 лет назад такой порнографии в нем не было! :)))) Нельзя было присваивать переменным значение в разделе VAR, только константам, но у них тип не указывался. А теперь вон оно что... куда катится этот мир! :)))
Научи как менять голос ну библиотека или не знаю нейронку как создать ну чтоб можно было копировать голос научи
умышленно не использую аннотацию так как он неё почти нет толку, вместо этого оформляю полноценные docstrings в стиле sphinxdoc, что в разы полезнее. Как по мне пока интерпретатор игнорирует аннотацию это бесполезная фича, годная разве что для тех кто ленится или просто не в состоянии нормально описать docstring.
Docstring намного лучше поясняет код + генерация документации
Дядь, у твоего микро большое эхо
Не сынок. Это балкон. Накоплю денег - куплю акустический поролон
@@PythonToday 😂ну ладно
@@PythonToday 😅😅
ребят с чего начать с полностью нулевыми знаниями, вообще абсолютно не знаю ничего в кодинге, просто бабка
Зачем делать такое видео, если сам не разобрался?
Скучные ролики пошли…