Могу ли я написать утверждения в абстрактном базовом классе, чтобы выражать инварианты дескрипторов, помимо того, что онPython

Программы на Python
Ответить
Anonymous
 Могу ли я написать утверждения в абстрактном базовом классе, чтобы выражать инварианты дескрипторов, помимо того, что он

Сообщение Anonymous »

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

Например, предположим, я хочу требовать, чтобы классы имели имя и чтобы это имя начиналось с буквы 'a':

Код: Выделить всё

from abc import ABC, abstractproperty

class Base(ABC):
@abstractproperty
def name(self):
assert self.name[0] == 'a' # or similar; help needed here

class Derived1(Base):
name = 'albert' # I want this class definition to work

class Derived2(Base):
name = 'john' # I want this class definition to fail the 'a' assertion
Где/как мне это утверждать в базовом классе?

Подробнее здесь: https://stackoverflow.com/questions/566 ... -on-descri
Ответить

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

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

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

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

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