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

  Рет қаралды 1,293

Сурен Хоренян

Сурен Хоренян

Ай бұрын

Показываю аннотации 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
- KZbin: / @surenkhorenyan
- Второй канал на KZbin: / @surenlife
- RuTube rutube.ru/u/Suren/

Пікірлер: 20
@user-kk1yg9fr8r
@user-kk1yg9fr8r Ай бұрын
Топчик, про Final знал а вот @final что-то новое для меня спасибо!
@SurenKhorenyan
@SurenKhorenyan Ай бұрын
Крутяк, пожалуйста!
@lifestyletv139
@lifestyletv139 Ай бұрын
Пушка бро
@SurenKhorenyan
@SurenKhorenyan Ай бұрын
Кайф, спасибо!
@bednyakov
@bednyakov 17 күн бұрын
Спасибо за видео. Но 5 минутная тема растянута на полчаса, объективно. Это видимо скилл из Скиллбокс)) Вот сокращенный сценарий: Final в Python обозначает, что данное значение не может быть изменено или перезаписано. Например, если мы объявим переменную с аннотацией Final, то после присваивания значения ее уже не будет возможности изменить. Пример использования Final из typing в Python: пример @final - это декоратор, который можно применять к классам в Python. Он обозначает, что данный класс является финальным и не подлежит наследованию. Если мы попытаемся унаследовать от класса, помеченного как @final, то Python выдаст ошибку. Пример использования @final из typing в Python: пример Итак, Final и @final из модуля typing в Python используются для указания, что значение переменной или класса не может быть изменено или унаследовано соответственно.
@SurenKhorenyan
@SurenKhorenyan 17 күн бұрын
Здравствуйте. Спасибо за краткую сводку! Да, я люблю рассказать подробно. Сам сначала думал, что видео на 10 минут, а оно вон как. Навык точно не из скилбокс
@lentIIKFN
@lentIIKFN Ай бұрын
Здравствуйте! Посмотрел ваши ролики про авторизацию в fastapi. Мне стало интересно что вы думаете насчет библиотеки fastapi-users. Насколько знаю в ролике вы ее не упоминали.
@SurenKhorenyan
@SurenKhorenyan Ай бұрын
Привет! По fastapi-users в обозримом будущем будет ролик. Пока не успеваю разобраться и сделать.
@lentIIKFN
@lentIIKFN Ай бұрын
@@SurenKhorenyan Просто интересно, чем пользоваться лучше и проще.
@SurenKhorenyan
@SurenKhorenyan Ай бұрын
@@lentIIKFN всё зависит от ситуации. Я бы использовал отдельный центр авторизации
@ashm_tech
@ashm_tech Ай бұрын
Сурен, а какой у вас Pycharm? И какую AI тулзу используете? Заранее благодарю!
@SurenKhorenyan
@SurenKhorenyan 29 күн бұрын
PyCharm Pro, последний 23-го года. Встроенный full line completion, который работает локально
@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 21 күн бұрын
Половира нейтивов читает тюпл, половина тапл, так что не надо тут гнать на Сурена
@SurenKhorenyan
@SurenKhorenyan 21 күн бұрын
@@Amatefinde да главное чтобы было понятно и всё
ДЕСКРИПТОРЫ В ПИТОНЕ
22:43
Андрей Иванов | Python
Рет қаралды 9 М.
T110E4 WoT - 7Kills, 9,5K Damage
9:13
BlinD ShoT | WoT ReplayS
Рет қаралды 22
Useful Gadget for Smart Parents 🌟
00:29
Meow-some! Reacts
Рет қаралды 10 МЛН
Не пей газировку у мамы в машине
00:28
Даша Боровик
Рет қаралды 7 МЛН
Мама забыла взять трубочку для колы
00:25
Даша Боровик
Рет қаралды 1,9 МЛН
5 Tips for Building Powerful Data Dashboards in Python
19:05
ArjanCodes
Рет қаралды 26 М.
Объектно-ориентированное программирование В Python | ООП Python
9:20
PyLounge - программирование на Python и всё о IT
Рет қаралды 35 М.
How about that uh?😎 #sneakers #airpods
0:13
Side Sphere
Рет қаралды 9 МЛН
How much charging is in your phone right now? 📱➡️ 🔋VS 🪫
0:11
🤯Самая КРУТАЯ Функция #shorts
0:58
YOLODROID
Рет қаралды 3,5 МЛН
Я Создал Новый Айфон!
0:59
FLV
Рет қаралды 3,1 МЛН
The power button can never be pressed!!
0:57
Maker Y
Рет қаралды 42 МЛН