Объектная модель Python3
Долг за прошлый раз
Циклический конструктор генератора
>>> a=(i*2+1 for i in range(0,10,2) if i!=6) >>> a <generator object <genexpr> at 0x7feea8cd2938> >>> next(a) 1 >>> next(a) 5 >>> next(a) 9 >>> next(a) 17 >>> next(a) Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration >>> def fn(seq): ... print(*seq) ... >>> fn((1,2,3)) 1 2 3 >>> fn(i*2+1 for i in range(10) if i!=6) 1 3 5 7 9 11 15 17 19
При передаче такого генератора в качестве единственного параметра функции скобки можно убрать.
Параметрические декораторы
Статья на Хабре (это продолжение, можно почитать и предыдущие две)
Объектная модель Python3
Основная статья: первый скетч про классы
- Классы как пространства имён
- Классы как конструкторы объектов
- Поля класса и поля объектов, правила видимости
- Метод как функция в классе, видимая «сквозь» объект:
- Дополнительный первый параметр
- Обязательное использование имени объекта (точнее, связи с объектом) при обращении к его полю
__init__(), когда вызывается
- Заполнение полей объекта
Перегрузка операций
Базовая статья: datamodel.html
__str__() и __repr()__
- Арифметические орпрации
Д/З
TODO