Python: Liste der Operatorne für ein Objekt

OP #4630945
Lesenswert?

Hallo zusammen,
ich arbeite in der interaktiven Python-Shell gerne mit
1
dir(object)
2
help(object.Methode)

Gibt es sowas Ähnliches auch für Operatoren? Konkretes Beispiel: Kann 
ich irgendwo in der integrierten Hilfe nachlesen, dass "|" bei sets oder 
anderen Datentypen so funktioniert wie es funktioniert?

Gruß
Dennis
OP #4637000
Lesenswert?

Mhh... da steht
1
Help on wrapper_descriptor:
2

3
__or__(...)
4
    x.__or__(y) <==> x|y

Was es BEWIRKT steht da nicht. Schließlich ist | mehrfach belegt... 
Online ist natürlich eine Möglichkeit, aber "alles aus einer Hand" wie 
eben mit den Methoden hat seinen Charme.

Okay, ich hake das ab unter "geht nicht", vielen Dank.

Gruß
Dennis
OP #4637310
Lesenswert?

set schrieb:
> Naja man kann sich natürlich auch künstlich anstellen.
Könnte man. Aber dafür ist die Zeit doch viel zu kostbar!

> Was soll der Oder-Operator denn schon machen?
Das ist abhängig vom Datentyp...

> Ich bin froh, dass die Standardlib nicht mit so trivialen docstrings
> vollgemüllt wird.
Hat Dokumentation denn messbare Nachteile? Wer ihn sich nicht anzeigen 
lässt bekommt davon doch nichts mit!?

Gruß
Dennis
Moderator #4637445
Lesenswert?

Der Doc-String für überladene Operatoren scheint für alle
Standardklassen nach dem gleichen Schema aufgebaut zu sein und sagt
lediglich aus, dass die Methode dasselbe tut wie die Anwendung des
entsprechenden Operators. Diese Information ist aber – typunabhängig –
bereits in der Definition des Sprachkerns verankert und damit weitgehend
redundant und nutzlos.

Bei set.__or__ kann man ja noch ahnen, dass es sich dabei um die
Disjunktion handelt, aber wie sieht es mit set.__lt__ aus, d.h. wann ist
eine Menge A kleiner als eine Menge B? Noch schwieriger ist die Funktion
der Methode dict.__lt__ zu erraten, zumal sie in Python 2 und 3
unterschiedlich implementiert ist.

Wenn diese Operatormethoden sowieso einen Doc-String enthalten, könnte
der ja ruhig etwas aussagekräftiger sein.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren