Аннотации типов в 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

ความคิดเห็น • 62

  • @loxlox3944
    @loxlox3944 7 หลายเดือนก่อน +17

    В питоне 3.10 давно можно аннотировать без Union: list | None например. Можно ещё аннотировать написанные обьекты.

  • @maxrokitsky
    @maxrokitsky 7 หลายเดือนก่อน +24

    4:31 Это неверно. Если нет ретёрна, то питон неявно подставляет `return None` и функция завершается нормально, тип возвращаемого значения `-> None`.
    Ты почти прав, когда говоришь "допускаем что функция не завершается нормально", только правильнее не "допускаем", а "гарантируем". Например, если функция всегда(!) выкидывает исключение или уходит в бесконечный цикл. Если ты после вызова функции `greeting() -> NoReturn` напишешь что-нибудь, тебе VSCode затемнит код и напишет "Код недоступен", т.к. до этих строк выполнение никогда не дойдёт.
    1:57 typing.List лучше не использовать, он устарел и будет в будущем выпилен из питона. Вместо этого используйте просто обычный list, например `list[str]`.
    3:52 Не ошибка, но для простых комбинаций можно просто через pipe `|` написать. Например `a: float | int`.

    • @PythonToday
      @PythonToday  7 หลายเดือนก่อน +6

      Благодарю за фидбэк и разъяснение!

    • @makeevdimitry
      @makeevdimitry 7 หลายเดือนก่อน +3

      всё-так стоит ещё учитывать, под какую версию идёт разработка: list[str] - будет ругаться до 3.9, a: float | int - будет ругаться до 3.10
      а ещё автор не указал, что есть библиотеки, которые используют аннотации типов, например, для валидации

  • @Artists353
    @Artists353 7 หลายเดือนก่อน +1

    Только что начала изучать аннотацию типов и при них нечего не понял, но тут ты всё понятно объяснил. Спасибо

  • @drongodep5750
    @drongodep5750 หลายเดือนก่อน

    я починав свій шлях програмування із типізованих мов, бородатого Паскаль, С+ та Java тому мені увійшло в звичку прописувати типи даних навіть в Python. Особисто я вважаю анотації типів дуже корисною річчю. До речі, раніше я не знав, що інтерпритатор ігнорує анотації. Авторе, дякую. Було корисно та інформативно як завжди

  • @dr_mont2965
    @dr_mont2965 7 หลายเดือนก่อน

    Какое совпадение! Я только начал использовать аннотации типов, и тут сразу выходит целое видео по этой теме)

  • @popel_
    @popel_ 7 หลายเดือนก่อน +5

    Аннотации типов часто использую. Очень удобная штука, если честно. Код выглядит в разы симпатичней и понятней для других и себя в том числе.

    • @leoworker1752
      @leoworker1752 2 หลายเดือนก่อน +1

      Это откат к временам С . Ничего удобного, лишняя писанина.

  • @Death_2091
    @Death_2091 7 หลายเดือนก่อน +5

    Донесено всё простым языком и всё понятно

    • @PythonToday
      @PythonToday  7 หลายเดือนก่อน

      Спасибо за поддержку!

  • @Neko-sr4wz
    @Neko-sr4wz 7 หลายเดือนก่อน +2

    УРААААААААА, НОВЫЙ ТОП-ВИДОС!

  • @TheRedbeardster
    @TheRedbeardster 7 หลายเดือนก่อน +3

    Безумное раздолбайство, конечно: указывать сигнатуру и плевать на нее с дроболитейной башни. Спасибо!

  • @Alexander-vi9mg
    @Alexander-vi9mg 7 หลายเดือนก่อน

    Вот только вчера хотел погуглить как и зачем это используется. Спасибо!

    • @PythonToday
      @PythonToday  7 หลายเดือนก่อน

      Спасибо за фидбэк! Рад что полезно!

  • @rinatyagafarov5328
    @rinatyagafarov5328 7 หลายเดือนก่อน

    Благодарю за информацию!
    Как раз в айограм попадались такие конструкции, интуитивно догадывался для чего они, сейчас стало ясно.

    • @PythonToday
      @PythonToday  7 หลายเดือนก่อน

      Благодарю за фидбэк!

  • @traydingzone
    @traydingzone 7 หลายเดือนก่อน

    Класс видосы, скажи пожалуйста, а есть видео для парсинга авито? чтоб все данные можно было потом выгрузить в Эксель и для дальнейшей сортировки, все данные чтоб были в таблице по запросам? Заранее спасибо

  • @indlborm
    @indlborm 7 หลายเดือนก่อน +1

    Как-то поверхностненько )
    АФАИК указание типов применяется не "для коллег-программистов", а "для IDE".
    Чтобы IDE вопило-ругалось про несоответствие. Потому что самому питону чихать на типы и ошибки с ними.
    ОООчень мало, точнее почти нет, про составные типы. Когда переменная или функция могут иметь разные типы значений.
    Как минимум, возвращать (None или что-то).
    В каментах уже указали, что Uniion это bad practices. Т.ч. тема точно требует освещения.
    (да и как-то ни разу не видел uniion в реальном коде, только "тип|тип" и т.п..)
    Т.ч. за почин зачет. Однако, тема требует развития и углубления.
    Желательно, сразу с примерами, как оно будет в популярных IDE.
    Например, мне не удалось убедить pycharm корректно обрабатывать составные типы возвращаемых значений. Пока забил, но хотелось бы понять что не так с этим чудо(вище)м программизма.

  • @vigauss1889
    @vigauss1889 7 หลายเดือนก่อน +1

    Спасибо

  • @Embrace777
    @Embrace777 7 หลายเดือนก่อน

    Спасибо!

  • @user-wh8ll3nn6r
    @user-wh8ll3nn6r 7 หลายเดือนก่อน

    PythonToday пора бы запилить видосик по парсингу авито

  • @amirniiazov1684
    @amirniiazov1684 7 หลายเดือนก่อน +4

    Вроде бы вместо Union можно использовать оператор | к примеру int | float, а вместо NoReturn, -> None поправьте если ошибаюсь

    • @muhlymak
      @muhlymak 7 หลายเดือนก่อน

      пайп вместо union c 3.10, а с NoReturn автор не изучил сабж до конца, название аннотации ввело в заблуждение )

  • @deus7204
    @deus7204 7 หลายเดือนก่อน +3

    Познавательно! Спасибо за видео

  • @user-zj4vj4sl6v
    @user-zj4vj4sl6v 3 หลายเดือนก่อน

    Отличное видео, все понятно объясняете, однако)

    • @PythonToday
      @PythonToday  3 หลายเดือนก่อน

      Благодарю за фидбэк!

  • @indlborm
    @indlborm 7 หลายเดือนก่อน

    Возможно, тоже есть на канале -- было бы неплохо осветить тему использования raise.
    В каких случаях какие типы ошибок правильнее использовать.
    Как минимум, разница между ValueError и RuntimeError.
    Если оба этих варианта можно применять после проверки значений.
    Например, в функцию приходит параметр -- проверяется, "упс, пустой". Как понять, это ошибка значения или ошибка выполнения?
    Если не ловить эти ошибки в вызывающем коде, то разницы никакой -- скрипт упадет в любом случае. А если фильтровать по except -- то уже появляется разница.

  • @Dmitrij_D
    @Dmitrij_D หลายเดือนก่อน +1

    Пришёл с версии 3.4 Если честно, не понимаю, как лишняя писанина улучшает понимание кода, если для других, то в докстринг можно указать. Не, может где-то и полезно, но выглядит ппц непривычно для меня...

  • @user-je5tg9jx5m
    @user-je5tg9jx5m 7 หลายเดือนก่อน

    Действительно очень полезная вещь и крайне странно редко это видеть в реальных проектах. Было бы клево чтобы аннотации еще и приводили к ошибкам при неверном типе данных. Пришлось бы меньше тестов писать. НО это так мечты....

    • @Trezvy_Papa
      @Trezvy_Papa 6 หลายเดือนก่อน

      Это в Java вроде бы так.

    • @user-yd7qo6kc6e
      @user-yd7qo6kc6e 4 หลายเดือนก่อน

      @@Trezvy_Papa это в любом языке со статической типизацией так

  • @indlborm
    @indlborm 7 หลายเดือนก่อน +1

    Еще интересна тема про сравнение IDE в плане "полезность/пожирание ресурсов".
    Недавно обратил внимание, что pycharm пожирает 4..6 гигов памяти на простом файлике в пару тысяч строк.
    Как-то это дофига )
    Возможно, на канале уже есть такие ролики?
    Особенно интересны моменты, если такие реально есть, вроде: написал "import tensorflow as tf" -- и пайчарм отожрал гиг памяти. Написал еще импорт-другой и еще отожралось.
    Или дело совсем не в этом )

    • @alexandergrigorev4518
      @alexandergrigorev4518 6 หลายเดือนก่อน

      Пайчарм много кеширует например для мгновенного поиска по проекту. И именно поиск в нем мегаудобный

  • @infinity16492
    @infinity16492 7 หลายเดือนก่อน

    всем привет. напишите пж кто шарит, стоит ли начинать с питона, т.к. на данный момент питон учат все кому не лень и соответственно очень много джунов питонистов и на 1 вакансию дохера людей собираются, будут ли проблемы с поиском работы в дальнейшем ?

  • @clauseclause6640
    @clauseclause6640 7 หลายเดือนก่อน +8

    Все очень плохо! NoReturn, ТОЛЬКО для функций которые ОБЯЗАТЕЛЬНО вызывают исключение. Давно не используют List, потому что есть list, а вместо Union используют |

    • @muhlymak
      @muhlymak 7 หลายเดือนก่อน +2

      автору два, что безответственно подошёл к этой теме 😁много комментов именно по этим 3 пунктам

  • @asperinn
    @asperinn 7 หลายเดือนก่อน

    Всем привет . Подскажите какие-нибудь каналы в телеге с комьюнити по питону..либо просто по программированию! Буду крайне признателен. Всем добра !

  • @pythohuynya
    @pythohuynya 7 หลายเดือนก่อน

    неплохо

  • @nakamasama
    @nakamasama 6 หลายเดือนก่อน +1

    Ты не прав. Не знаю, когда появилась такая возможность, но в 3.10+ поддерживаются типы str, int, float, bool, list, tuple, dict, None как минимум. Это те, которые я использовал. Я всегда после написания проекта делаю аннотацию типов. И я никогда не использовал устаревший модуль typing. Всё, что есть в typing, можно сделать аннотацией. Не вижу смысла его использовать...

  • @user-iw2bv5ep8o
    @user-iw2bv5ep8o 7 หลายเดือนก่อน +1

    Очень нравится твой канал, но после плейлиста по парсингу такие короткие видео ни в какое сравнение не идут.
    Есть МНОГО полезных видео у тебя на канале.
    Возможно, у тебя просто стало меньше времени, чтобы снимать видео, но можешь делать хотя бы средние видео, например по интересным библиотекам, которыми делишься в телеграмме, либо про что-то другое.
    Тот же самый бесплатный ChatGPT на канале очень помогает мне учиться алгоритмам, так что спасибо.
    P.S. Аннотации типов - это отличная вещь.
    Ты очень классно объясняешь, но в этот раз очень сжато расскрыл тему.
    Надеюсь, комментарий поможет тебе чем-то.
    Успехов и удачи🍀

  • @blackcatdevel0per
    @blackcatdevel0per 7 หลายเดือนก่อน

    Final и NoReturn я ещё не пользовал 🤔

  • @MsRestartround
    @MsRestartround 7 หลายเดือนก่อน +6

    Кто не использует? Я не использую? Я использую!

    • @PythonToday
      @PythonToday  7 หลายเดือนก่อน +3

      Красавчик! Я использую очень редко, лень :(

  • @ifiifjrndkdkx
    @ifiifjrndkdkx 7 หลายเดือนก่อน

    Часто встречал это в проектах на гитхабе, даже боялся трогать это ) а это оказывается сделано чтобы как раз мне было легче😅 спасибо тебе за крутые видосы❤

    • @PythonToday
      @PythonToday  7 หลายเดือนก่อน +2

      Спасибо за поддержку и крутоей коммент) Рад что полезно

  • @the_huge_knight
    @the_huge_knight 7 หลายเดือนก่อน +1

    Аннотации типов удобны в ООП: редакторы кода подтягивают методы и свойства указанных классов.

  • @isanek88
    @isanek88 7 หลายเดือนก่อน +1

    Кошка то будет???

  • @oleg_vp
    @oleg_vp 7 หลายเดือนก่อน

    Прикольненько. Так скоро Питон в Шарпа превратится :) Однако, лично мне, после всяких там си-подобных языков очень режет глаз это: *count: int = 14* Вообще логики не вижу и глаза слезятся... Ну просится же: *int: count = 14* !!! НУ КАК ТАК ТО? :)

    • @vhavagyan
      @vhavagyan 7 หลายเดือนก่อน

      после паскалья не режит )

    • @oleg_vp
      @oleg_vp 7 หลายเดือนก่อน

      @@vhavagyan удивился... полез гуглить... офигел... Когда я учил Паскаль 30 лет назад такой порнографии в нем не было! :)))) Нельзя было присваивать переменным значение в разделе VAR, только константам, но у них тип не указывался. А теперь вон оно что... куда катится этот мир! :)))

  • @merdannowruzow5597
    @merdannowruzow5597 7 หลายเดือนก่อน

    Научи как менять голос ну библиотека или не знаю нейронку как создать ну чтоб можно было копировать голос научи

  • @alexmaretskiy
    @alexmaretskiy 6 หลายเดือนก่อน

    умышленно не использую аннотацию так как он неё почти нет толку, вместо этого оформляю полноценные docstrings в стиле sphinxdoc, что в разы полезнее. Как по мне пока интерпретатор игнорирует аннотацию это бесполезная фича, годная разве что для тех кто ленится или просто не в состоянии нормально описать docstring.
    Docstring намного лучше поясняет код + генерация документации

  • @LoLKeK09
    @LoLKeK09 7 หลายเดือนก่อน

    Дядь, у твоего микро большое эхо

    • @PythonToday
      @PythonToday  7 หลายเดือนก่อน +4

      Не сынок. Это балкон. Накоплю денег - куплю акустический поролон

    • @LoLKeK09
      @LoLKeK09 7 หลายเดือนก่อน

      @@PythonToday 😂ну ладно

    • @user-tb5fx6zq5u
      @user-tb5fx6zq5u 7 หลายเดือนก่อน

      @@PythonToday 😅😅

  • @domuro8108
    @domuro8108 7 หลายเดือนก่อน

    ребят с чего начать с полностью нулевыми знаниями, вообще абсолютно не знаю ничего в кодинге, просто бабка

  • @Trezvy_Papa
    @Trezvy_Papa 6 หลายเดือนก่อน

    Зачем делать такое видео, если сам не разобрался?

  • @krosser2849
    @krosser2849 7 หลายเดือนก่อน

    Скучные ролики пошли…