gt;>> class A(object): pass 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

gt;>> class A(object): pass

Поиск

...

def __radd__(self, x):

...

def __iadd__(self, x):

 

...

 

Здесь метод __add__() вызывается,когда экземпляр класса Plussable стоит слева от сложения,__radd__()-если справа от сложения и метод слева от него не имеет метода __add__().Метод __iadd__() нужен для реализации +=.

 

Отношения между классами

 

Наследование

 

На практике часто возникает ситуация,когда в предметной области выделены очень близкие,но вместе с тем неодинаковые классы.Одним из способов сокращения описания классов за счет использования их сходства является выстраивание классов в иерархию.В корне этой иерархии стоит базовый класс,от которого нижележащие классы иерархии наследуют свои атрибуты,уточняя и расширяя поведение вышележащего класса.Обычно принципом построения классификации является отношение"IS-A" ("ЕСТЬ").Например,класс Окружность в программе-графическом редакторе может быть унаследован от класса Геометрическая Фигура.При этом Окружность будет являться подклассом(или субклассом)для класса Геометрическая Фигура,а Геометрическая Фигура-надклассом(или суперклассом) для класса Окружность.

 

В языкеPythonво главе иерархии("новых")классов стоит класс object.Для ориентации в иерархии существуют некоторые встроенные функции,которые будут рассмотрены ниже.Функция issubclass(x, y) может сказать,является ли класс x подклассом класса y:

 

>>> class A(object): pass

 

...

>>> class B(A): pass

...

>>> issubclass(A, object) True

>>> issubclass(B, A) True

>>> issubclass(B, object) True

>>> issubclass(A, str) False

>>> issubclass(A, A) # класс является подклассом самого себя



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 62; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.007 с.)