Aktuell a set of functions gibt success=True
oder False
zurück.Erstellen eines Rückgabe-Flag-Objekts
Wir haben festgestellt, dass dies nicht gut genug ist, da False
sowohl "gültiges Ergebnis" als auch "ungültiges Ergebnis" vermitteln kann, und wir möchten, dass sich das Verhalten in jedem Fall unterscheidet.
So I think they should be changed stattdessen {True, False, InvalidResult}
zurückgeben, wobei bool(InvalidResult)
für Abwärtskompatibilität falsch ist, aber für die Verwendung if is InvalidResult
getestet werden kann.
Ich bin nicht sicher, was die Terminologie ist, aber ich stelle mir etwas wie die built-in NotImplemented
vor, die von Vergleichsfunktionen zurückgegeben wird. Dies wird in der Dokumentation als "spezieller Wert" bezeichnet und ist vom Typ NotImplementedType
.
Wie erstellt man ein solches Objekt und welche Methoden/Attribute soll es haben? Ich sollte meinen eigenen Typ wie NotImplementedType
auch erstellen, oder gibt es einen vorhandenen Typ, der dieses "Flag" -Konzept vermittelt? Es ist eine ähnliche Art von Objekt zu True
, False
, None
, NotImplemented
usw.
Klingt wie ein „tribool“ ... Ist 'None' auch ein gültiger Wert oder die verwendet werden könnten, kein Ergebnis zu bedeuten? –
Kannst du einfach keine verwenden? bool (None) == False – georgexsh
@georgexsh Ja, aber es wurde angenommen, dass InvalidResult klarer ist – endolith