Seite 1 von 1
Rückgabewerte von aufgerufenen Funktionen verarbeiten
Verfasst: Donnerstag 20. Februar 2014, 12:07
von dominik123
Hallo,
ich rufe folgendermaßen in ein Modul ausgelagerte Funktionen auf:
modulname.funktionsname(x,y,z)
Die Parameter werden korrekt übergeben und in der Funktion abgearbeitet.
Versuche ich nun allerdings ein Ergebnis mittels:
return ergebnis
zurück zu geben und anschließend im Hauptprogramm auszugeben, so wird der Wert nicht zurückgegeben.
Muss ich bei Auslagerung in Modulen etwas gesondertes beachten?
Wie kann ich mehrere Ergebnisse zurückgeben? Normalerweise sollte das mittels:
return (ergebnis1, ergebnis2,...) funktionieren oder?
Ich hoffe meine Fragen sind verständlich!
Vielen Dank!
Re: Rückgabewerte von aufgerufenen Funktionen verarbeiten
Verfasst: Donnerstag 20. Februar 2014, 12:14
von pillmuncher
Du musst den Code zeigen, sonst kann man nur raten.
Re: Rückgabewerte von aufgerufenen Funktionen verarbeiten
Verfasst: Donnerstag 20. Februar 2014, 12:54
von BlackJack
@dominik123: Zur letzten Frage: Man kann immer nur einen Wert zurück geben. Dieser eine Wert darf aber natürlich auch ein Tupel mit mehreren Elementen sein. Oder jedes andere Objekt das andere Werte als Elemente und/oder Attribute besitzt.
Re: Rückgabewerte von aufgerufenen Funktionen verarbeiten
Verfasst: Donnerstag 20. Februar 2014, 13:11
von /me
BlackJack hat geschrieben:Dieser eine Wert darf aber natürlich auch ein Tupel mit mehreren Elementen sein.
Um das mal als Codebeispiel zu zeigen:
Code: Alles auswählen
>>> def do_something(value):
return value + value, value * value
>>> result = do_something(5)
>>> print(result)
(10, 25)
>>> print(result[0])
10
Re: Rückgabewerte von aufgerufenen Funktionen verarbeiten
Verfasst: Donnerstag 20. Februar 2014, 13:28
von dominik123
Hallo,
erstmal danke für die Antworten!
Die Funktion die ich aufrufe sieht folgendermaßen aus:
Code: Alles auswählen
def user_input(target_RJ, target_BUJ, target_TJ):
target_RJ*=0.001
target_BUJ*=0.001
target_TJ = (target_BUJ + 14*target_RJ)
print "--> target_RJ:", target_RJ
print "--> target_BUJ:", target_BUJ
print "--> target_TJ:", target_TJ
ergebnis= target_TJ
return ergebnis
Im Hauptprogramm versuche ich folgendermaßen mit ihr zu arbeiten:
Code: Alles auswählen
calibration2002m.user_input(target_RJ,target_BUJ,target_TJ)
print "ergebnis (RJ):%f"%ergebnis
Re: Rückgabewerte von aufgerufenen Funktionen verarbeiten
Verfasst: Donnerstag 20. Februar 2014, 13:37
von Hyperion
Du musst den Rückgabewert einer Funktion auch an einen Namen binden!
Code: Alles auswählen
def foo():
return "bar"
# so wird der Rückgabewert "verworfen"
foo()
# so bindest Du ihn an einen Namen
result = foo()
# mit diesem Namen kannst Du dann weiterarbeiten
print(result)
> bar
# oder ohne explizite Bindung, wenn Du das Ergebnis nur einmal brauchst
print(foo())
> bar
Re: Rückgabewerte von aufgerufenen Funktionen verarbeiten
Verfasst: Freitag 21. Februar 2014, 14:58
von dominik123
Ich kann jetzt sowohl einen als auch mehrere Rückgabeparameter verarbeiten.
Vielen Dank!
Re: Rückgabewerte von aufgerufenen Funktionen verarbeiten
Verfasst: Freitag 21. Februar 2014, 18:06
von /me
dominik123 hat geschrieben:Ich kann jetzt sowohl einen als auch mehrere Rückgabeparameter verarbeiten.
Sicherheitshalber: Es gibt nicht mehrere Rückgabewerte, es gibt nur einen einzigen. Dieser kann aber natürlich ein Tupel mit mehreren Elementen sein.