Was ist der beste Weg in Python, um eine Unterklasse einer vorhandenen Klasse so zu erstellen, dass ein benutzerdefinierter Fehler angesprochen wird, wenn Sie versuchen, das Objekt zu ändern? < /p>
Der folgende Code zeigt, was ich will.class ImmutableModifyError(Exception):
pass
class ImmutableList(list):
def __init__(self, err = "", *argv):
self.err = err
super().__init__(*argv)
def append(self, *argv):
raise ImmutableModifyError(self.err)
def extend(self, *argv):
raise ImmutableModifyError(self.err)
def clear(self, *argv):
raise ImmutableModifyError(self.err)
def insert(self, *argv):
raise ImmutableModifyError(self.err)
def pop(self, *argv):
raise ImmutableModifyError(self.err)
def remove(self, *argv):
raise ImmutableModifyError(self.err)
def sort(self, *argv):
raise ImmutableModifyError(self.err)
def reverse(self, *argv):
raise ImmutableModifyError(self.err)
< /code>
Wenn ich andere unveränderliche Typen verwende, wird ein AttributeError anstelle des benutzerdefinierten Fehlers geworfen, dessen Nachricht entlang des Objekts erstellt wird. Wie Sie sehen können, ist dieser Code zu wiederholt und wäre fehleranfällig, wenn sich die Klasse ändern. Ich habe versteckte Methoden und Operatoren nicht berücksichtigt. Gibt es eine bessere Möglichkeit, dies zu erreichen?
Unterklasse, die einen benutzerdefinierten Fehler verursacht, wenn er geändert wird ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post