class ABC: a = ma b = mb c = mc 


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



ЗНАЕТЕ ЛИ ВЫ?

class ABC: a = ma b = mb c = mc

Поиск

True

В основе построения классификации всегда стоит принцип,играющий наиболее важную роль в анализируемой и моделируемой системе.Следует заметить,что одним из"перегибов" при использовании ОО методологии является искусственное выстраивание

 

иерархии классов.Например,не стоит наследовать класс Машина от класса Колесо(внимательные заметят, что здесь отношение другое: колесо является частью машины).

 

Класс называется абстрактным,если он предназначен только для наследования.Экземпляры абстрактного класса обычно не имеют большого смысла.Классы с рабочими экземплярами называются конкретными.

 

ВPythonпримером абстрактного класса является встроенный тип basestring,у которого есть конкретные подклассы str и unicode.

 

Множественное наследование


 


В отличие,например,отJava,в языкеPythonможно наследовать класс от нескольких классов.Такая ситуация называется множественным наследованием(multipleinheritance).

 

Класс,получаемый при множественном наследовании,объединяет поведение своих надклассов,комбинируя стоящие за ними абстракции.

 

Использовать множественное наследование следует очень осторожно,а необходимость в нем возникает реже одиночного.

 

· Множественное наследование можно применить для получения класса с заданными общедоступными методами,причем методы задает один родительский класс,а реализуются они на основе методов второго класса.Первый класс может быть полностью абстрактным.

 

· Множественное наследование применяется для добавления примесей(mixins).Примесь-специально сконструированный класс,добавляющий в некоторый класс какую-либо черту поведения(привнесением атрибутов).Примеси обычно являются абстрактными классами.

 

· Изредка множественное наследование применяется в своем основном смысле,когда объекты класса,получающегося в результате множественного наследования,

 

предназначаются для использования в качестве объектов всех родительских классов.

 

В случае сPythonнаследование можно считать одним из способов собрать нужные комбинации методов в серии классов:

 

class A:

 

def a(self): return 'a' class B:

 

def b(self): return 'b' class C:

 

def c(self): return 'c'

 

class AB(A, B): pass

class BC(B, C): pass

 

class ABC(A, B, C): pass

 

Впрочем,собрать нужные методы можно и по-другому,без использования наследования:

 

def ma(self): return 'a' def mb(self): return 'b' def mc(self): return 'c'

 

class AB: a = ma b = mb

 

class BC: b = mb c = mc

 

 



Поделиться:


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

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