Wie kann ich Anzahl der Rückgabewerte ermitteln?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Brando
User
Beiträge: 171
Registriert: Donnerstag 28. Januar 2016, 15:36

die Methode init_vector gibt drei Werte mit return zurück. Wie kann ich diese Anzahl überprüfen?

bspw. if init_vector().length()==3:
do something

oder if len(init_vector())==3:
do something


Beides funktioniert nicht
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Wenn letzteres nicht funktioniert gibt init_vector() nicht 3 Werte mit return zurück.
Brando
User
Beiträge: 171
Registriert: Donnerstag 28. Januar 2016, 15:36

Ich erhalte die Fehlermeldung:
object of type 'Add' has no len()
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Tja, dann solltest du wohl mal schauen wo genau Add definiert ist und was man damit so machen kann.
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Funktionen geben nicht drei Werte zurück, sondern immer nur *ein* Objekt. Dieses Objekt kann ein Sequenztyp sein, der drei Werte umfasst (Tupel, Liste, etc). Wenn man return a, b, c schreibt, dann wäre es zum Beispiel ein Tupel (ein Spezialfall in der Python-Syntax). Sobald es sich dabei nicht um einen Typen aus Pythons Standardbibliothek handelt, ist keinesfalls selbstverständlich, dass die Länge abgefragt werden kann. Dazu muss das Objekt nämlich entweder die Methode __len__() selbst definieren oder von einer Klasse erben, in der die Methode definiert wurde. Wenn diese Methode nicht vorliegt, dann funktioniert auch len() nicht.

Schau mal nach anderen Möglichkeiten. Vielleicht bringen Add-Objekte ja die Möglichkeit mit, auf die enthaltenen Werte direkt zuzugreifen und diese als Liste oder Tupel zu erhalten. Sowas wie .items oder .values vielleicht. Dafür solltest du dir aber am besten die Doku anschauen.
Antworten