Язык программирования Python

       

Порядок разрешения методов


В случае, когда надклассы имеют одинаковые методы, использование того или иного метода определяется порядком разрешения методов (method resolution order). Для "новых" классов узнать этот порядок очень просто с помощью атрибута __mro__:

>>> str.__mro__ (<type 'str'>, <type 'basestring'>, <type 'object'>)

Это означает, что сначала методы ищутся в классе str, затем в basestring, а уже потом - в object.

Для "классических" классов порядок несколько отличается от порядка разрешения методов в "новых" классах. Нужно стараться избегать множественного наследования или применять его очень аккуратно.



Содержание раздела