Как обеспечить соблюдение детского класса, чтобы установить атрибуты с использованием декоратора AbstractProperty в PythPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как обеспечить соблюдение детского класса, чтобы установить атрибуты с использованием декоратора AbstractProperty в Pyth

Сообщение Anonymous »

Я хочу обеспечить соблюдение детского класса для установки нескольких атрибутов (переменных экземпляра), чтобы достичь, я использую декоратор 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»