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!
Rückgabewerte von aufgerufenen Funktionen verarbeiten
- pillmuncher
- User
- Beiträge: 1484
- Registriert: Samstag 21. März 2009, 22:59
- Wohnort: Pfaffenwinkel
Du musst den Code zeigen, sonst kann man nur raten.
In specifications, Murphy's Law supersedes Ohm's.
@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.
Um das mal als Codebeispiel zu zeigen:BlackJack hat geschrieben:Dieser eine Wert darf aber natürlich auch ein Tupel mit mehreren Elementen sein.
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
-
- User
- Beiträge: 35
- Registriert: Montag 10. Februar 2014, 08:48
Hallo,
erstmal danke für die Antworten!
Die Funktion die ich aufrufe sieht folgendermaßen aus:
Im Hauptprogramm versuche ich folgendermaßen mit ihr zu arbeiten:
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
Code: Alles auswählen
calibration2002m.user_input(target_RJ,target_BUJ,target_TJ)
print "ergebnis (RJ):%f"%ergebnis
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
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
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
-
- User
- Beiträge: 35
- Registriert: Montag 10. Februar 2014, 08:48
Ich kann jetzt sowohl einen als auch mehrere Rückgabeparameter verarbeiten.
Vielen Dank!
Vielen Dank!
Sicherheitshalber: Es gibt nicht mehrere Rückgabewerte, es gibt nur einen einzigen. Dieser kann aber natürlich ein Tupel mit mehreren Elementen sein.dominik123 hat geschrieben:Ich kann jetzt sowohl einen als auch mehrere Rückgabeparameter verarbeiten.