Ich habe kürzlich über das Überladen von Operatoren in Python erfahren, und ich würde gerne wissen, ob das Folgende möglich ist.
Betrachten Sie die folgende hypothetische / konstruierte Klasse.
%Vor%Ich weiß, dass die Art, die oben geschrieben wurde, ich solche Dinge tun kann
%Vor%und diese funktionieren wie erwartet. Ich weiß auch, dass die Art, wie es momentan geschrieben ist, nicht möglich ist.
%Vor%Gibt es das überhaupt? Ich weiß, dass dieses Beispiel erfunden ist, aber ich habe eine Anwendung, in der es sehr nützlich wäre, wenn ich Operatorüberladung machte, kann die Klasse, für die ich den Operator definiere, auf der rechten Seite des Operators erscheinen. Ist das in Python möglich?
Ja. Zum Beispiel gibt es __radd__
. Auch gibt es keine für __le__()
, __ge__()
usw., sondern als Joel Cornett beobachtet zu Recht, wenn Sie nur __lt__
definieren, ruft a > b
die Funktion __lt__
von b
auf, was eine Umgehungslösung darstellt.
Beachten Sie, dass es zumindest in einigen Fällen sinnvoll ist, Folgendes zu tun:
%Vor%Tags und Links python operator-overloading