При обходе объекта циклом for, не имеющего iter, какой протокол Python использует вместо него?
База Hintsage
Модель данных
Протоколы объектов, dunder-методы, дескрипторы и классы.
Практика
Вопросы: Модель данных
При вызове класса в каком случае Python пропустит вызов init после выполнения new?
За счёт какого механизма функция, объявленная в классе, при доступе через экземпляр превращается в связанный метод?
При проверке истинности объекта, у класса которого определены bool и len, какой метод Python использует первым?
При выполнении операции над объектом специальный метод переопределён только в экземпляре: будет ли Python учитывать его?
При переопределении getattribute как безопасно получить обычный атрибут внутри этой реализации, не запустив её повторно?
В классе объявили __slots__ без __dict__: где Python ожидает хранить атрибуты экземпляра?
Как дескриптор узнаёт имя атрибута, под которым он объявлен в классе?
Объясните механизм: в какой момент Python вызывает __getattr__ при обращении к атрибуту объекта?
Разберите механизм доступа к атрибуту: какое значение напечатает код и почему запись в __dict__ не меняет результат?
class D:
def __get__(self, obj, owner):
return 'descriptor'
def __set__(self, obj, value):
raise AttributeError('read only')
class C:
x = D()
c = C()
c.__dict__['x'] = 'instance'
print(c.x)
Показано 41–50 из 50