Kann ich Behauptungen in einer abstrakten Basisklasse schreiben, um Invarianten von Deskriptoren auszudrücken, die nichtPython

Python-Programme
Anonymous
 Kann ich Behauptungen in einer abstrakten Basisklasse schreiben, um Invarianten von Deskriptoren auszudrücken, die nicht

Post by Anonymous »

Im Wesentlichen möchte ich verlangen, dass Unterklassen einer abstrakten Basisklasse nicht nur bestimmte Attribute oder Methoden implementieren, sondern auch Anforderungen an diese stellen können, wie z. B. Datentypen oder zulässige Werte.

Angenommen, ich möchte beispielsweise Klassen verlangen, die einen Namen haben und dass dieser Name mit dem Buchstaben „a“ beginnt:

Code: Select all

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
Wo/wie würde ich das in der Basisklasse behaupten?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post