Классы 2

compscicenter.ru/
Дескрипторы: что-как-зачем. Конструктор __new__, класс type и метаклассы. Наследование встроенных типов. Модули abc и collections.abc.
Лекция №10 в курсе "Python" (осень 2015).
Преподаватель курса: Сергей Лебедев
Страница лекции на сайте CS центра: goo.gl/MQdKBV

Пікірлер: 15

  • @hikkarion
    @hikkarion7 жыл бұрын

    Питон легкий язык, говорили они \|(-_-)|\

  • @ainabcenikita5891
    @ainabcenikita58917 жыл бұрын

    Хотел отметить что пример с проверкой на то, является ли объект obj итерируемым при помощи isinstance(obj, Iterable) на 1:18:00 является на самом деле не лучшей идеей. Стоит помнить, что если некий класс B реализует метод __getitem__, то объект класса B является итерируемым не смотря на то, что не реализует __iter__. По этой причине для проверки итерируемый объект obj или нет следует передать его методу iter(obj), возвращающему итератор и отловить исключение TypeError. В случае, если obj итерируемый, TypeError вылетать не будет. По мне, проверка является ли a числом isinstance(a, Number) - пример более удачный ) Вот код: from collections import Iterable class A: def __init__(self, value): self.a = value def __iter__(self): return iter(self.a) class B: def __init__(self, value): self.b = value def __getitem__(self, item): return self.b[item] some_list = [1, 2, 3, 4, 5] a = A(some_list) b = B(some_list) print('a Iterable:', isinstance(a, Iterable)) print('b Iterable:', isinstance(b, Iterable)) try: iter(a) print('a is Iterable') except TypeError: print('a is not Iterable') try: iter(b) print('b is Iterable') except TypeError: print('b is not Iterable') ####################### # Результаты выполнения: # ####################### # # a Iterable: True # b Iterable: False # a is Iterable # b is Iterable

  • @k283
    @k283 Жыл бұрын

    30:08 - вместо словаря можно использовать WeakKeyDictionary из модуля weakref, тогда чрезмерного расхода памяти не будет.

  • @jeromewicks3896
    @jeromewicks38965 жыл бұрын

    43:53 - Метаклассы

  • @Das.Kleine.Krokodil
    @Das.Kleine.Krokodil2 жыл бұрын

    Метаклассы 43:52 Что такое метакласс? 46:36 Синтаксис использования метаклассов ... 1:06:45 Применением метаклассов на практике

  • @nicholasspezza9449

    @nicholasspezza9449

    Жыл бұрын

    дурачок

  • @user-dc9rq8dw8e
    @user-dc9rq8dw8e5 жыл бұрын

    Таким дураком себя после этой лекции чувствую. Почти ничего не усвоил

  • @dmitrytsmyh5971
    @dmitrytsmyh59714 жыл бұрын

    По моему реализация @classmethod с помощью дескриптора, какая-то невнятная. В доках питона написано, как это делается, там по другому и сразу понятно.

  • @iamarkadiypolukhin
    @iamarkadiypolukhin Жыл бұрын

    Своевременный комментарий: на первом слайде "Очень безопасный класс запрещает НЕПОЛОЖИТЕЛЬНЫЕ значения" Ну или "Разрешает только положительные" . И в теле класса в комментарии тоже лучше "only positive". Или поменять >0 на >=0 Если я все правильно понял

  • @Das.Kleine.Krokodil
    @Das.Kleine.Krokodil2 жыл бұрын

    *Дескрипторы* 00:00 Напоминание: свойства 01:04 Переиспользование свойств 03:08 Дескрипторы - *ДЛЯ ЧЕГО ЭТО ВСЁ* 04:25 Дескрипторы и очень безопасный класс 06:02 Протокол дескрипторов: _ _ get _ _ 10:22 Протокол дескрипторов: _ _ set _ _ 12:09 Протокол дескрипторов: _ _ delete _ _ 13:36 “Семантика” протокола дескрипторов 15:22 Типы дескрипторов 16:15 Дескрипторы и _ _ dict _ _ 18:00 Пример: дескриптор данных с методом __ get __ 21:08 Пример: дескриптор с единственным методом __ get __ 27:35 Как хранить данные в дескрипторах? 28:55 Хранение данных в дескрипторах: атрибут дескриптора 30:02 Хранение данных в дескрипторах: словарь 32:01 Хранение данных в дескрипторах: атрибут экземпляра - *ТАК НУЖНО ХРАНИТЬ* 33:23 Примеры дескрипторов: @property 34:30 Методы класса и дескрипторы 36:43 Статические методы и методы класса 39:32 Примеры дескрипторов: @staticmethod и @classmethod 42:53 Дескрипторы: резюме

  • @nicholasspezza9449

    @nicholasspezza9449

    Жыл бұрын

    ну и зачем это, попытка лайкодрочерства потерпела фиаско

  • @Das.Kleine.Krokodil

    @Das.Kleine.Krokodil

    Жыл бұрын

    @@nicholasspezza9449 вижу тебе не знакомо понятие и цели конспекта.

  • @user-ix7lb1sx4k
    @user-ix7lb1sx4k3 жыл бұрын

    Не работает ссылка на файл со слайдами на странице урока.

  • @danil897
    @danil8972 жыл бұрын

    Да кто такой этот ваш type

  • @ceoofthen-word8849

    @ceoofthen-word8849

    2 жыл бұрын

    туре