Forum: PC-Programmierung Python: Liste der Operatorne für ein Objekt


von Dennis S. (eltio)


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

von help(set.__or__) (Gast)


Lesenswert?

help(set.__or__)

von Dennis S. (eltio)


Lesenswert?

help(set.__or__) schrieb:
> help(set.__or__)

Danke für deine Antwort. Aber eine wirkliche Hilfe ist da nicht 
hinterlegt.

Gruß
Dennis

von set (Gast)


Lesenswert?

Dennis S. schrieb:
> Aber eine wirkliche Hilfe ist da nicht hinterlegt.

Naja es steht dort, was es macht.
Wenn du weitere Informationen suchst, dann schau halt in die offizielle 
Python-Dokumentation.
https://docs.python.org/3/tutorial/datastructures.html#sets

von Dennis S. (eltio)


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

von set (Gast)


Lesenswert?

Dennis S. schrieb:
> Schließlich ist | mehrfach belegt...

Naja man kann sich natürlich auch künstlich anstellen.
Was soll der Oder-Operator denn schon machen?
Ich bin froh, dass die Standardlib nicht mit so trivialen docstrings 
vollgemüllt wird.

von Dennis S. (eltio)


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

von Yalu X. (yalu) (Moderator)


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.

von Dennis S. (eltio)


Lesenswert?

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

Du sprichst aus was ich zu sagen beabsichtigte.. ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.