Аннотации 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
Топчик, про Final знал а вот @final что-то новое для меня спасибо!
@SurenKhorenyan
Ай бұрын
Крутяк, пожалуйста!
Здравствуйте! Посмотрел ваши ролики про авторизацию в fastapi. Мне стало интересно что вы думаете насчет библиотеки fastapi-users. Насколько знаю в ролике вы ее не упоминали.
@SurenKhorenyan
Ай бұрын
Привет! По fastapi-users в обозримом будущем будет ролик. Пока не успеваю разобраться и сделать.
@lentIIKFN
Ай бұрын
@@SurenKhorenyan Просто интересно, чем пользоваться лучше и проще.
@SurenKhorenyan
Ай бұрын
@@lentIIKFN всё зависит от ситуации. Я бы использовал отдельный центр авторизации
Сурен, а какой у вас Pycharm? И какую AI тулзу используете? Заранее благодарю!
@SurenKhorenyan
Ай бұрын
PyCharm Pro, последний 23-го года. Встроенный full line completion, который работает локально
Пушка бро
@SurenKhorenyan
Ай бұрын
Кайф, спасибо!
Спасибо за видео. Но 5 минутная тема растянута на полчаса, объективно. Это видимо скилл из Скиллбокс)) Вот сокращенный сценарий: Final в Python обозначает, что данное значение не может быть изменено или перезаписано. Например, если мы объявим переменную с аннотацией Final, то после присваивания значения ее уже не будет возможности изменить. Пример использования Final из typing в Python: пример @final - это декоратор, который можно применять к классам в Python. Он обозначает, что данный класс является финальным и не подлежит наследованию. Если мы попытаемся унаследовать от класса, помеченного как @final, то Python выдаст ошибку. Пример использования @final из typing в Python: пример Итак, Final и @final из модуля typing в Python используются для указания, что значение переменной или класса не может быть изменено или унаследовано соответственно.
@SurenKhorenyan
Ай бұрын
Здравствуйте. Спасибо за краткую сводку! Да, я люблю рассказать подробно. Сам сначала думал, что видео на 10 минут, а оно вон как. Навык точно не из скилбокс
Сурен, спасибо за видео! Подскажите пожалуйста, как можно реализовать ведение атрибутов changed_by, changed_at? Надо чтоб заполнялись только при изменении других атрибутов объекта, вне инициализатора.
@SurenKhorenyan
Ай бұрын
Пожалуйста! А в каких объектах это? В любых классах? Или при работе с бд? Приходите в Телеграм чат, там подскажем обязательно
@user-qp8hg4ds2b
Ай бұрын
Да, в произвольном классе. Надо отслеживать кто изменял объект и когда. Но когда переопределяю метод __set__ то отрабатывает в том числе в __init__, а мне это не нужно.
@SurenKhorenyan
Ай бұрын
@@user-qp8hg4ds2b тогда только через дескрипторы. Следите за изменениями любых свойства и меняйте внутренние значения
Бро, tuple читается не как "тЮпл", а как "тАпл"))
@SurenKhorenyan
Ай бұрын
Спасибо! Главное, чтобы было понятно, что имеется в виду 🙂
@Amatefinde
Ай бұрын
Половира нейтивов читает тюпл, половина тапл, так что не надо тут гнать на Сурена
@SurenKhorenyan
Ай бұрын
@@Amatefinde да главное чтобы было понятно и всё