Ich habe eine Funktion, die mehrere Ausgänge hat, von denen alle "native", d. H. Ganzzahlen und Strings. Angenommen, ich habe eine Funktion, die eine Zeichenfolge analysiert und sowohl die Anzahl der Wörter als auch die durchschnittliche Länge eines Worts ermittelt.Python Newbie: Mehrere Int/String Ergebnisse in Python
In C/C++ würde ich @ verwenden, um 2 Parameter an die Funktion zu übergeben. In Python bin ich mir nicht sicher, was die richtige Lösung ist, weil Integer und Strings nicht als Referenz, sondern als Wert übergeben werden (zumindest verstehe ich das unter Trial-and-Error), so dass der folgende Code nicht funktioniert:
def analyze(string, number_of_words, average_length):
... do some analysis ...
number_of_words = ...
average_length = ...
Wenn ich das oben tun, ändern sich die Werte außerhalb des Bereichs der Funktion nicht. Was ich zur Zeit tun, ist ein Wörterbuch benutzen wie so:
def analyze(string, result):
... do some analysis ...
result['number_of_words'] = ...
result['average_length'] = ...
Und ich verwende die Funktion wie folgt aus:
s = "hello goodbye"
result = {}
analyze(s, result)
jedoch, die nicht richtig anfühlt. Was ist der richtige pythonische Weg, um dies zu erreichen? Bitte beachten Sie, dass ich nur Fälle betrachte, in denen die Funktion 2-3 Ergebnisse liefert, nicht Dutzende von Ergebnissen. Außerdem bin ich ein kompletter Neuling auf Python, so dass ich weiß, ich kann etwas trivial hier fehlt ...
Dank
Siehe http://www.google.com/url?sa=t&source=web&ct=res&cd=1&url=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FPython_syntax_and_semantics&ei=Q-oNSoG9C4resgajkY2ICA&usg=AFQjCNG_HE4ZKmUPGvVh9_SqhnJdMdYxaA&sig2=5h95J4BFgltEby5aDtEL0g über "Aufruf nach Objektreferenz" – tzot