Blick durch decimal.py
, es verwendet NotImplemented
in vielen speziellen Methoden. z.B.Python NotImplemented Konstante
class A(object):
def __lt__(self, a):
return NotImplemented
def __add__(self, a):
return NotImplemented
Die Python docs say:
NotImplemented
Spezialwert, der durch den „reichen Vergleich“ spezielle Methoden zurückgegeben werden können (
__eq__()
,__lt__()
, und Freunde), um anzuzeigen, dass der Vergleich nicht mit bezüglich des anderen Typs durchgeführt wird.
Es wird nicht über andere spezielle Methoden gesprochen und beschreibt auch nicht das Verhalten.
Es scheint, ein magisches Objekt zu sein, das, wenn es von anderen speziellen Methoden zurückgegeben wird, TypeError
erhöht, und in "reichem Vergleich" macht spezielle Methoden nichts.
z.B.
print A() < A()
druckt True
, aber
print A() + 1
wirft TypeError
, so dass ich bin neugierig, was los ist und was ist die Nutzung/Verhalten von NotImplemented.
Alle korrekt. Sie haben NotImplemented vollständig beschrieben. Was ist die Frage? –
meine Frage war, dass, wenn in doc, speziell erwähnt "Rich Comparison" spezielle Methoden, sollten andere Methoden es ignorieren, schließlich ist es nur ein anderes Objekt, konnte ich nicht doc erklären allgemeines Verhalten oder wie NotImplementiert –