![Программирование 2.0](/img/default-banner.jpg)
- 2
- 22 914
Программирование 2.0
Russia
Registrace 3. 11. 2016
Официальный канал "Программирование 2.0".
Научно-популярный познавательный канал о разработке: обучение языкам, алгоритмам, управлению разработкой, вопросы которые задают на собеседованиях. Специальные проекты и программы.
"Программирование 2.0" - канал для тех, кто интересуется настоящим и хочет знать, каким будет наше будущее.
Научно-популярный познавательный канал о разработке: обучение языкам, алгоритмам, управлению разработкой, вопросы которые задают на собеседованиях. Специальные проекты и программы.
"Программирование 2.0" - канал для тех, кто интересуется настоящим и хочет знать, каким будет наше будущее.
Протокол дескрипторов в Python
В этом видео мы поговорим о двух взаимосвязанных вещах - атрибутах объектов и протоколе дескрипторов в Python. Несмотря на то, что в дескрипторах нет ничего сложного, есть целый ряд нюансов, связанных с тем, как этот механизм работает. На простых примерах мы разберем порядок вычисления значения атрибута объекта и возможности вклиниться своим кодом в разные этапы этого механизма. Так же мы обсудим несколько возможных применений дескрипторов.
0:00 Вступление
0:41 Обращение к свойствам класса через свойства объекта
1:42 Приоритет словаря объекта над свойствами класса
2:40 Метод __get__
3:22 Дескриптор без данных (Non-data descriptor)
3:43 Приоритет словаря объекта над дескриптором без данных
3:59 Немного шаманства
4:37 Метод __set__
5:11 Дескриптор данных (Data descriptor)
5:26 Приоритет дескриптора данных над словарём объекта
5:34 Обращение к словарю объекта из методов дескрипторов
6:38 Декоратор @property умеет всё то же самое
8:08 Метод __set_name__
8:53 Делаем методы __get__ и __set__ более универсальными
9:36 Единый код для управления разными свойствами
10:10 Как работает __set_name__?
10:25 Дескриптор, как средство логирования любого доступа к атрибутам
10:40 Дескриптор, как средство валидации значений атрибутов
12:03 Дескриптор, как средство для работы с колонками в ORM
12:26 Метод __getattr__ не мешает работе с дескрипторов
13:35 Метод __getattribute__ отключает механизм дескрипторов
14:36 Порядок поиска атрибута объекта
17:15 Исключение AttributeError
18:12 Заключение
19:33 В следующих сериях
0:00 Вступление
0:41 Обращение к свойствам класса через свойства объекта
1:42 Приоритет словаря объекта над свойствами класса
2:40 Метод __get__
3:22 Дескриптор без данных (Non-data descriptor)
3:43 Приоритет словаря объекта над дескриптором без данных
3:59 Немного шаманства
4:37 Метод __set__
5:11 Дескриптор данных (Data descriptor)
5:26 Приоритет дескриптора данных над словарём объекта
5:34 Обращение к словарю объекта из методов дескрипторов
6:38 Декоратор @property умеет всё то же самое
8:08 Метод __set_name__
8:53 Делаем методы __get__ и __set__ более универсальными
9:36 Единый код для управления разными свойствами
10:10 Как работает __set_name__?
10:25 Дескриптор, как средство логирования любого доступа к атрибутам
10:40 Дескриптор, как средство валидации значений атрибутов
12:03 Дескриптор, как средство для работы с колонками в ORM
12:26 Метод __getattr__ не мешает работе с дескрипторов
13:35 Метод __getattribute__ отключает механизм дескрипторов
14:36 Порядок поиска атрибута объекта
17:15 Исключение AttributeError
18:12 Заключение
19:33 В следующих сериях
zhlédnutí: 9 450
Video
Декораторы в Python
zhlédnutí 13KPřed 3 lety
В этом видео мы поговорим о декораторах в Python. На собеседованиях о них часто спрашивают. Мы детально рассмотрим механизмы работы декораторов на примере lru_cache из functools и сами напишем его простенький аналог. Узнаем как делаеть декораторы на основе функций и классов, какие вспомогательные инструменты для этого есть, как делать декораторы с параметрами и что можно декорировать с их помощ...
Ощущение, что на функции Фибоначчи не самый лучший способ показать декораторы
Хорошее объяснение. Но пока ты его на практике раз 30 не попробуешь, вряд ли поймешь его мощь и необходимость использования в конкретном месте Подписался. Зря, видимо. Автор перестал заниматься каналом. Жаль, я много пересмотрел всего, эта тема действительно хорошо раскрыта на базовом уровне
автор - красавчик. Благодарю за объяснение
Это гениально разжевано!!!! Спасибо!
Господи, если вы кодер и вам нужно двадцати минутное видео, что бв понять декораторы, может программирование это не ваше?
Все понятно в двух случаях: когда действительно понял и когда на самом деле не разобрался. Декораторы - достаточно сложный и объёмный момент в python. И двадцати минут на самом деле мало, если только у вас не второй вариант.
Спасибо тебе большое, автор, прохходя курс по ооп наткнулся на эту тему и вообще невдуплял что этл м для чего,+ подача на курсе не оч.Ты же за 20+ минут раскидал все пошагово, по полочкам.У тебя талант- хорошо объяснять
В конце видео захотелось встать и похлопать. Реально круто! Спасибо!
Может для jupyter не надо, но в PyCharm вам нужно будет сделать импорт from functools import wraps Чтобы воспользоваться декоратором wraps. P.S. Самое понятное и живое объяснение декораторов, особенно с параметрами.
лучшее объяснение
спасибо
Наконец-то понял, отличное объяснение
Неплохо рассказано о декораторах. Я много промотрел виде ваше лучшее. Не все умеют доносить информацию
Порядок поиска атрибута объекта: 0. _getatribute_ 1. cвойство data desriptor 2. _dict_ 3. cвойство не дескриптор или non-data desriptor 4. raise AtributeError -> _getattr_
Объяснил так, что сам почти понял как это работает 😄. Спасибо, действительно хорошо объяснили!
Очень понятно и доходчиво. Продолжай пожалуйста записывать видео.
Самое понятное видео по этой теме! Спасибо большое автору.
Спасибо за видео! Стало понятнее.
Капец ты грамотно объясняешь. При чём, по-моему даже без склеек , просто на одном дыхании, так сказать) Благодарю, после твоего видео протокол дескрипторов стал действительно понятным.
Что за IDE в которой ты пишешь код?
Jupyter Notebook
спасибо за полезный видос
так что такое декоратор, нифига не понял
Классная подача весьма не простой темы! Спасибо!
Ты зачем так слился на двух видео?! - выходило не плохо
Лучшее объяснение дескрипторов, которое я нашел, я бы отдал свои шекели каналу, будь тут кнопка!
Жаль, что давно нет видео. Всё же хотелось бы увидеть и про метаклассы от тебя. Хорошо рассказываешь.
Очень понятно объяснил. Спасибо!
То ли я утомился за день, то ли уровень сложный, то ли максимально много упущено мест, где можно прокомментировать подробнее. В общем сложнее, чем в прочих видео на YT.
Да, сложно объясняет, смотрю его когда уже выучу, для повторения
Классный урок! Побольше бы таких наглядных уроков!
Спасибо, отличные видео, и про дискрипторы и про декораторы
Где видео про метаклассы?)
Круть
Ну хде же МетаКлассы(( Каждый день захожу проверяю вышло видео уже или нет
def fibonacci(n): a, b = 0, 1 for _ in range(n): yield(a) a, b = b, a + b count = 10 fibo_list = [None] * count g = fibonacci(count) for i in range(count): fibo_list[i] = (next(g)) print(fibo_list) Мне кажется так лучше создать список чисел Фибоначчи Этот код может сделать список Фибоначчи из 10000 чисел за несколько миллисекунд и он будет занимать не больше 120 байт
Сам пример; class B: def __set_name__(self, obj, name): print(f'__set_name__{name}') self.name = '_' + name def __get__(self, instance, owner): print(F'__get__{self.name}') return instance.__dict__[self.name] def __set__(self, instance, value): print(f'__set__{self.name}') instance.__dict__[self.name] = value class X: a = 1 b = B() c = B() def __init__(self, b, c ): self.__b = b self.__c = c x = X(1,2) print(x.a) print(x.b) x.c = 8 print(x.c)
День добрый. А как сделать что бы этот пример работал с приватными атрибутами?
Крутой канал!!! 👍👍👍
Автор, у тебя отлично получается. Почему так мало роликов выкладываешь? Давай ещё)
спасибо вам огромное! а когда будет следующее видео?:)
Лайк однозначный!
Отлично! Просто отлично обьяснил. Спасибо!
Я не знаю кто Вы, но объясняете вы прекрасно. Спасибо.
Понятно и полезно!
Автор, продолжай запись. У тебя действительно хорошо получается.
Отлично. Где там мета классы?
Очень круто )) Почаще бы видео выходили ))
"О сколько нам открытий чудных.." Спасибо за видео!
Годный контент, пушка гонка
Все шикарно. Отличное видео. Подача материала хорошая))
Привет! Очень круто рассказываешь. А есть ли у тебя какой-нибудь канал или группа в телеграмме, дискорде или где-то еще?
О, канал совсем молодой, оказывается. Вообще не подумал бы, качество - топ 👍 Не знал раньше про декораторы, было очень полезно. Спасибо автору. И ютубу, что привёл меня сюда.(просто всплыло в рекомендациях, я специально не искал)