Классы нового стиля. ООП в Python
ООП на Python Классы python, ооп в python, создать класс python
Начиная с Python 2.2, помимо классических классов существует классы так называемого нового стиля. Классом нового стиля называется класс, у которого базовым классом является встроенный объект (например, list или dict) или объект object. Для классов старого и нового стили отличаются результатом выполнения функции type(), а также вывод атрибутов __class__ и __bases__ для экземпляров классов.
Классы нового стиля
class Class1: # Классический класс
pass
class Class2(object): # Класс нового стиля
pass
class Class3(list): # Класс нового стиля
pass
print type(Class1) # Выведет:
print type(Class2) # Выведет:
print type(Class3) # Выведет:
# __bases__ содержит кортеж с базовыми классами
print Class1.__bases__ # Выведет: ()
print Class2.__bases__ # Выведет: (,)
print Class3.__bases__ # Выведет: (,)
c1, c2, c3 = Class1(), Class2(), Class3()
print c1.__class__ # Выведет: __main__.Class1
print c2.__class__ # Выведет:
print c3.__class__ # Выведет:
print type(c1) # Выведет:
print type(c2) # Выведет:
print type(c3) # Выведет:
Кроме того, в классах нового стиля другой порядок поиска идентификаторов при множественном наследовании. Рассмотрим это на примере.
Поиск идентификаторов при множественном наследовании
class Class1(object): # Класс нового стиля
#class Class1: # Классический класс
var1 = "Это значение в классических классах"
class Class2(Class1): pass
class Class3(Class2): pass
class Class4(Class3): pass
class Class5(Class2):
var1 = "Это значение в классах нового стиля"
class Class6(Class5): pass
class Class7(Class4, Class6): pass
c1 = Class7()
print c1.var1
Если используется классические классы, то атрибут var1 будет найден в классе Class1, т.к. просматривается вся ветка наследования для класса Class4. Если используется классы нового стиля, то атрибут var1 будет найден в классе Class5, т.к. при достижения класса Class2 поиск будет производиться в ветке класса Class6, стоящего в списке наследования вторым. Класс Class2 для классов Class4 и Class6 является общим предком.
Все автолюбители знают, что хорошие запчасти могут быть только в стране где производится автомобиль а все остальное либо подделка или б/у. Интернет магазин автозапчастей Украина может помочь вам в выборе недостающей части чтобы выполнить полноценный ремонт автомобиля. Все запчасти качественные и импортированы за границей. Можно так же, заказать доставку индивидуальных запчастей.
- Альтернативы статическим методам Python
- Абстрактные методы в Python
- Объектно-ориентированное программирование. Методы __init__() и __del__() в Python
- Статические методы и методы класса
- Гибкое создание объектов в Python с помощью метода __new__
- Множественное наследование в Python
- Доступ к атрибутам класса в языке Python