Могу ли я написать утверждения в абстрактном базовом классе, чтобы выражать инварианты дескрипторов, помимо того, что он ⇐ 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

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