Предотвращение прямого создания экземпляра класса в PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Предотвращение прямого создания экземпляра класса в Python

Сообщение Гость »


У меня есть суперкласс с методом, который вызывает другие методы, определенные только в его подклассах. Вот почему, когда я создаю экземпляр своего суперкласса и вызываю его метод, он не может найти метод и выдает ошибку.

Вот пример:

класс SuperClass(объект): защита метод_one (сам): значение = self.subclass_method() вывести значение класс SubClassOne (Суперкласс): Защиту subclass_method (сам): вернуть «подкласс 1» класс SubClassTwo (Суперкласс): Защиту subclass_method (сам): вернуть 'нубкласс 2' s1 = ПодклассОдин() s1.method_one() s2 = ПодклассДва() s2.method_one() с = СуперКласс() c.method_one() # Полученные результаты: # подкласс 1 # нубкласс 2 # Traceback (последний вызов): # Файл "abst.py", строка 28, в # c.method_one() # Файл "abst.py", строка 4, в методе_one # значение = self.subclass_method() # AttributeError: объект «Суперкласс» не имеет атрибута «subclass_method». Я думал об изменении __init__ суперкласса и проверке типа объекта при создании нового экземпляра. Если объект принадлежит суперклассу, возникает ошибка. Однако я не уверен, что это питонический способ сделать это.

Есть рекомендации?
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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