Ich versuche, eine Schnittstelle in Python 3.6 zu implementieren (ich weiß, dass sie nicht in Python existieren). Mit dem folgenden minimalen Beispiel:Python-Schnittstelle Asserting Member-Variablen sind definiert
import time
class ModuleInterface:
# How often the module information is updated (int in seconds).
interval = None
def update(self):
raise NotImplementedError
class HardDisk(ModuleInterface):
###############################################################################
pass # First
###############################################################################
# def update(self): # Second
# time.sleep(self.interval) # Second
###############################################################################
hd = HardDisk()
hd.update()
Der Code sollte einen NotImplementedError für den ersten Fall ergeben. Im zweiten Fall möchte ich einen ähnlichen Fehler erhalten, aber ich weiß nicht, wie ich das in Python korrekt umsetzen kann. Die Idee einer Schnittstelle besteht darin, einen Fehler zu liefern, wenn etwas nicht definiert ist. Aber Intervall ist definiert, weshalb der zweite Fall einen TypeError ergeben wird. Dies ist jedoch nicht die Art von Fehler, die ich gerne bekommen würde. Es wäre perfekt, für alle Mitglieder des ModuleInterface zu behaupten, dass sie durch die erbende Klasse definiert sein müssen.
Warum versuchen Sie nicht mit ABC-Modul in 'Python' – nanithehaddock
Vielen Dank, das scheint das richtige Modul zu sein. – msg