Я хочу обеспечить соблюдение детского класса для установки нескольких атрибутов (переменных экземпляра), чтобы достичь, я использую декоратор AbstractProperty в Python 2.7. Вот пример кода: < /p>
from abc import ABCMeta, abstractproperty
class Parent(object):
__metaclass__ = ABCMeta
@abstractproperty
def name(self):
pass
class Child1(Parent):
pass
class Child2(Parent):
name = 'test'
class Child3(Parent):
def __init__(self):
self.name = 'test'
obj_child1 = Child1()
< /code>
Создание объекта Child1 дает ошибку, как и ожидалось. < /p>
obj_child2 = Child2()
< /code>
Создание объекта Child2 работает нормально, потому что абстрактный атрибут 'имя' установлено < /p>
Однако < /p>
obj_child3 = Child3()
< /code>
дает typeError: невозможно создать абстрактный класс Child3 с абстрактными методами Имя < /em> < /p>
Я не понял: хотя атрибут «Имя» установлено в методе < /strong>
, почему воспроизведение объекта. Атрибуты внутри метода детского класса. Объяснение того, что не так с классом Child2, и если есть лучший способ обеспечить соблюдение детского класса для установки атрибутов методом, поможет мне. Заранее спасибо.
Подробнее здесь: https://stackoverflow.com/questions/416 ... -decorator
Как обеспечить соблюдение детского класса, чтобы установить атрибуты с использованием декоратора AbstractProperty в Pyth ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение