Seite 1 von 1
Wie kann ich Anzahl der Rückgabewerte ermitteln?
Verfasst: Dienstag 21. Juni 2016, 13:50
von Brando
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
Re: Wie kann ich Anzahl der Rückgabewerte ermitteln?
Verfasst: Dienstag 21. Juni 2016, 13:54
von DasIch
Wenn letzteres nicht funktioniert gibt init_vector() nicht 3 Werte mit return zurück.
Re: Wie kann ich Anzahl der Rückgabewerte ermitteln?
Verfasst: Dienstag 21. Juni 2016, 13:58
von Brando
Ich erhalte die Fehlermeldung:
object of type 'Add' has no len()
Re: Wie kann ich Anzahl der Rückgabewerte ermitteln?
Verfasst: Dienstag 21. Juni 2016, 13:59
von DasIch
Tja, dann solltest du wohl mal schauen wo genau Add definiert ist und was man damit so machen kann.
Re: Wie kann ich Anzahl der Rückgabewerte ermitteln?
Verfasst: Dienstag 21. Juni 2016, 19:34
von snafu
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.