Аннотации типов в Python | Почему не используешь?
Vložit
- čas přidán 5. 09. 2024
- Видеокурс уроков программирования на Python для начинающих.
Что такое аннотации типов, аннотации функций в Python и почему нужно использовать в своем коде.
🔥 Доступ в приват | Поддержать проект:
boosty.to/pyth...
/ pythontoday
yoomoney.ru/to...
🔥 Стать спонсором канала:
/ @pythontoday
****Ссылки****
Дешевый/надежный сервер в Европе + СКИДКА 10%:
vdsina.ru/?par...
Дешевый/надежный сервер в Европе:
zomro.com/?from...
promo_code:
zomro_246874
Хороший proxy сервис:
proxy6.net/a/1...
Распознавание текста с изображения на 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. Особисто я вважаю анотації типів дуже корисною річчю. До речі, раніше я не знав, що інтерпритатор ігнорує анотації. Авторе, дякую. Було корисно та інформативно як завжди
Донесено всё простым языком и всё понятно
Спасибо за поддержку!
Только что начала изучать аннотацию типов и при них нечего не понял, но тут ты всё понятно объяснил. Спасибо
Аннотации типов часто использую. Очень удобная штука, если честно. Код выглядит в разы симпатичней и понятней для других и себя в том числе.
Это откат к временам С . Ничего удобного, лишняя писанина.
Безумное раздолбайство, конечно: указывать сигнатуру и плевать на нее с дроболитейной башни. Спасибо!
Спасибо
Благодарю за информацию!
Как раз в айограм попадались такие конструкции, интуитивно догадывался для чего они, сейчас стало ясно.
Благодарю за фидбэк!
УРААААААААА, НОВЫЙ ТОП-ВИДОС!
Какое совпадение! Я только начал использовать аннотации типов, и тут сразу выходит целое видео по этой теме)
Вроде бы вместо Union можно использовать оператор | к примеру int | float, а вместо NoReturn, -> None поправьте если ошибаюсь
пайп вместо union c 3.10, а с NoReturn автор не изучил сабж до конца, название аннотации ввело в заблуждение )
PythonToday пора бы запилить видосик по парсингу авито
Как-то поверхностненько )
АФАИК указание типов применяется не "для коллег-программистов", а "для IDE".
Чтобы IDE вопило-ругалось про несоответствие. Потому что самому питону чихать на типы и ошибки с ними.
ОООчень мало, точнее почти нет, про составные типы. Когда переменная или функция могут иметь разные типы значений.
Как минимум, возвращать (None или что-то).
В каментах уже указали, что Uniion это bad practices. Т.ч. тема точно требует освещения.
(да и как-то ни разу не видел uniion в реальном коде, только "тип|тип" и т.п..)
Т.ч. за почин зачет. Однако, тема требует развития и углубления.
Желательно, сразу с примерами, как оно будет в популярных IDE.
Например, мне не удалось убедить pycharm корректно обрабатывать составные типы возвращаемых значений. Пока забил, но хотелось бы понять что не так с этим чудо(вище)м программизма.
Вот только вчера хотел погуглить как и зачем это используется. Спасибо!
Спасибо за фидбэк! Рад что полезно!
Спасибо!
Отличное видео, все понятно объясняете, однако)
Благодарю за фидбэк!
Ты не прав. Не знаю, когда появилась такая возможность, но в 3.10+ поддерживаются типы str, int, float, bool, list, tuple, dict, None как минимум. Это те, которые я использовал. Я всегда после написания проекта делаю аннотацию типов. И я никогда не использовал устаревший модуль typing. Всё, что есть в typing, можно сделать аннотацией. Не вижу смысла его использовать...
Пришёл с версии 3.4 Если честно, не понимаю, как лишняя писанина улучшает понимание кода, если для других, то в докстринг можно указать. Не, может где-то и полезно, но выглядит ппц непривычно для меня...
Все очень плохо! NoReturn, ТОЛЬКО для функций которые ОБЯЗАТЕЛЬНО вызывают исключение. Давно не используют List, потому что есть list, а вместо Union используют |
автору два, что безответственно подошёл к этой теме 😁много комментов именно по этим 3 пунктам
Возможно, тоже есть на канале -- было бы неплохо осветить тему использования raise.
В каких случаях какие типы ошибок правильнее использовать.
Как минимум, разница между ValueError и RuntimeError.
Если оба этих варианта можно применять после проверки значений.
Например, в функцию приходит параметр -- проверяется, "упс, пустой". Как понять, это ошибка значения или ошибка выполнения?
Если не ловить эти ошибки в вызывающем коде, то разницы никакой -- скрипт упадет в любом случае. А если фильтровать по except -- то уже появляется разница.
Познавательно! Спасибо за видео
Еще интересна тема про сравнение IDE в плане "полезность/пожирание ресурсов".
Недавно обратил внимание, что pycharm пожирает 4..6 гигов памяти на простом файлике в пару тысяч строк.
Как-то это дофига )
Возможно, на канале уже есть такие ролики?
Особенно интересны моменты, если такие реально есть, вроде: написал "import tensorflow as tf" -- и пайчарм отожрал гиг памяти. Написал еще импорт-другой и еще отожралось.
Или дело совсем не в этом )
Пайчарм много кеширует например для мгновенного поиска по проекту. И именно поиск в нем мегаудобный
Класс видосы, скажи пожалуйста, а есть видео для парсинга авито? чтоб все данные можно было потом выгрузить в Эксель и для дальнейшей сортировки, все данные чтоб были в таблице по запросам? Заранее спасибо
Очень нравится твой канал, но после плейлиста по парсингу такие короткие видео ни в какое сравнение не идут.
Есть МНОГО полезных видео у тебя на канале.
Возможно, у тебя просто стало меньше времени, чтобы снимать видео, но можешь делать хотя бы средние видео, например по интересным библиотекам, которыми делишься в телеграмме, либо про что-то другое.
Тот же самый бесплатный ChatGPT на канале очень помогает мне учиться алгоритмам, так что спасибо.
P.S. Аннотации типов - это отличная вещь.
Ты очень классно объясняешь, но в этот раз очень сжато расскрыл тему.
Надеюсь, комментарий поможет тебе чем-то.
Успехов и удачи🍀
Действительно очень полезная вещь и крайне странно редко это видеть в реальных проектах. Было бы клево чтобы аннотации еще и приводили к ошибкам при неверном типе данных. Пришлось бы меньше тестов писать. НО это так мечты....
Это в Java вроде бы так.
@@Trezvy_Papa это в любом языке со статической типизацией так
а я блин думал что это что-то очень важное ,оказалось простой заметкой для програмистов. ЧЕРТ!
Кто не использует? Я не использую? Я использую!
Красавчик! Я использую очень редко, лень :(
Всем привет . Подскажите какие-нибудь каналы в телеге с комьюнити по питону..либо просто по программированию! Буду крайне признателен. Всем добра !
неплохо
Final и NoReturn я ещё не пользовал 🤔
Кошка то будет???
Аннотации типов удобны в ООП: редакторы кода подтягивают методы и свойства указанных классов.
Часто встречал это в проектах на гитхабе, даже боялся трогать это ) а это оказывается сделано чтобы как раз мне было легче😅 спасибо тебе за крутые видосы❤
Спасибо за поддержку и крутоей коммент) Рад что полезно
всем привет. напишите пж кто шарит, стоит ли начинать с питона, т.к. на данный момент питон учат все кому не лень и соответственно очень много джунов питонистов и на 1 вакансию дохера людей собираются, будут ли проблемы с поиском работы в дальнейшем ?
Прикольненько. Так скоро Питон в Шарпа превратится :) Однако, лично мне, после всяких там си-подобных языков очень режет глаз это: *count: int = 14* Вообще логики не вижу и глаза слезятся... Ну просится же: *int: count = 14* !!! НУ КАК ТАК ТО? :)
после паскалья не режит )
@@vhavagyan удивился... полез гуглить... офигел... Когда я учил Паскаль 30 лет назад такой порнографии в нем не было! :)))) Нельзя было присваивать переменным значение в разделе VAR, только константам, но у них тип не указывался. А теперь вон оно что... куда катится этот мир! :)))
умышленно не использую аннотацию так как он неё почти нет толку, вместо этого оформляю полноценные docstrings в стиле sphinxdoc, что в разы полезнее. Как по мне пока интерпретатор игнорирует аннотацию это бесполезная фича, годная разве что для тех кто ленится или просто не в состоянии нормально описать docstring.
Docstring намного лучше поясняет код + генерация документации
Научи как менять голос ну библиотека или не знаю нейронку как создать ну чтоб можно было копировать голос научи
Зачем делать такое видео, если сам не разобрался?
ребят с чего начать с полностью нулевыми знаниями, вообще абсолютно не знаю ничего в кодинге, просто бабка
Скучные ролики пошли…
Дядь, у твоего микро большое эхо
Не сынок. Это балкон. Накоплю денег - куплю акустический поролон
@@PythonToday 😂ну ладно
@@PythonToday 😅😅