Питон - статьи



             

Листинг 4. Атрибуты в экземплярах


>>> charles=Prince() >>> charles.attributes # ...remember, not the real world ('Power', 'Wealth', 'Beauty')

Если оказалось, что у класса Duke есть метакласс, определенный пользователем, он может получить некоторые атрибуты следующим образом:

>>> class Nobility(type): attributes = Power, Wealth, Beauty

...

>>> class Duke(object): __metaclass__ = Nobility

...

Кроме того, что Duke - класс, он является экземпляром метакласса Nobility - поиск атрибутов происходит как и с любым объектом:

>>> Duke.attributes

('Power', 'Wealth', 'Beauty')

Но Nobility не является базовым классом Duke, поэтому нет причин, почему экземпляр класса Duke нашел бы Nobility.attributes:






Содержание  Назад  Вперед