Аннотации Final и @final в Python

Ғылым және технология

Показываю аннотации Final и @ final в Python для создания констант и "последних" классов и методов.
Констант в Python нет. Мы можем добавить техническое ограничение (например, через дескрипторы), ошибка при попытке присвоить возникнет только в момент выполнения кода. А при помощи линтера (например mypy) мы можем ещё на этапе статического анализа кода выявить потенциальные проблемы.
Код тут gist.github.com/mahenzon/1d6c...
Поддержать выход роликов (зарплата монтажеру)
- на Boosty boosty.to/mahenzon
- на Sponsr sponsr.ru/suren/
- через Tinkoff (любые карты) tinkoff.ru/cf/6kbKWtKhapM
- через CloudTips pay.cloudtips.ru/p/9a8fa641
Ссылки на соцсети:
- Канал в ТГ t.me/Khorenyan - тут в чате обсуждаем технологии и ваш код
- Паблик в ВК SurenKhorenyan
- KZread: / @surenkhorenyan
- Второй канал на KZread: / @surenlife
- RuTube rutube.ru/u/Suren/

Пікірлер: 20

  • @user-kk1yg9fr8r
    @user-kk1yg9fr8rАй бұрын

    Топчик, про Final знал а вот @final что-то новое для меня спасибо!

  • @SurenKhorenyan

    @SurenKhorenyan

    Ай бұрын

    Крутяк, пожалуйста!

  • @lentIIKFN
    @lentIIKFNАй бұрын

    Здравствуйте! Посмотрел ваши ролики про авторизацию в fastapi. Мне стало интересно что вы думаете насчет библиотеки fastapi-users. Насколько знаю в ролике вы ее не упоминали.

  • @SurenKhorenyan

    @SurenKhorenyan

    Ай бұрын

    Привет! По fastapi-users в обозримом будущем будет ролик. Пока не успеваю разобраться и сделать.

  • @lentIIKFN

    @lentIIKFN

    Ай бұрын

    @@SurenKhorenyan Просто интересно, чем пользоваться лучше и проще.

  • @SurenKhorenyan

    @SurenKhorenyan

    Ай бұрын

    @@lentIIKFN всё зависит от ситуации. Я бы использовал отдельный центр авторизации

  • @ashm_tech
    @ashm_techАй бұрын

    Сурен, а какой у вас Pycharm? И какую AI тулзу используете? Заранее благодарю!

  • @SurenKhorenyan

    @SurenKhorenyan

    Ай бұрын

    PyCharm Pro, последний 23-го года. Встроенный full line completion, который работает локально

  • @lifestyletv139
    @lifestyletv139Ай бұрын

    Пушка бро

  • @SurenKhorenyan

    @SurenKhorenyan

    Ай бұрын

    Кайф, спасибо!

  • @bednyakov
    @bednyakovАй бұрын

    Спасибо за видео. Но 5 минутная тема растянута на полчаса, объективно. Это видимо скилл из Скиллбокс)) Вот сокращенный сценарий: Final в Python обозначает, что данное значение не может быть изменено или перезаписано. Например, если мы объявим переменную с аннотацией Final, то после присваивания значения ее уже не будет возможности изменить. Пример использования Final из typing в Python: пример @final - это декоратор, который можно применять к классам в Python. Он обозначает, что данный класс является финальным и не подлежит наследованию. Если мы попытаемся унаследовать от класса, помеченного как @final, то Python выдаст ошибку. Пример использования @final из typing в Python: пример Итак, Final и @final из модуля typing в Python используются для указания, что значение переменной или класса не может быть изменено или унаследовано соответственно.

  • @SurenKhorenyan

    @SurenKhorenyan

    Ай бұрын

    Здравствуйте. Спасибо за краткую сводку! Да, я люблю рассказать подробно. Сам сначала думал, что видео на 10 минут, а оно вон как. Навык точно не из скилбокс

  • @user-qp8hg4ds2b
    @user-qp8hg4ds2bАй бұрын

    Сурен, спасибо за видео! Подскажите пожалуйста, как можно реализовать ведение атрибутов changed_by, changed_at? Надо чтоб заполнялись только при изменении других атрибутов объекта, вне инициализатора.

  • @SurenKhorenyan

    @SurenKhorenyan

    Ай бұрын

    Пожалуйста! А в каких объектах это? В любых классах? Или при работе с бд? Приходите в Телеграм чат, там подскажем обязательно

  • @user-qp8hg4ds2b

    @user-qp8hg4ds2b

    Ай бұрын

    Да, в произвольном классе. Надо отслеживать кто изменял объект и когда. Но когда переопределяю метод __set__ то отрабатывает в том числе в __init__, а мне это не нужно.

  • @SurenKhorenyan

    @SurenKhorenyan

    Ай бұрын

    @@user-qp8hg4ds2b тогда только через дескрипторы. Следите за изменениями любых свойства и меняйте внутренние значения

  • @user-fo9vj2yr6m
    @user-fo9vj2yr6mАй бұрын

    Бро, tuple читается не как "тЮпл", а как "тАпл"))

  • @SurenKhorenyan

    @SurenKhorenyan

    Ай бұрын

    Спасибо! Главное, чтобы было понятно, что имеется в виду 🙂

  • @Amatefinde

    @Amatefinde

    Ай бұрын

    Половира нейтивов читает тюпл, половина тапл, так что не надо тут гнать на Сурена

  • @SurenKhorenyan

    @SurenKhorenyan

    Ай бұрын

    @@Amatefinde да главное чтобы было понятно и всё

Келесі