私はいくつかの出力を持つ関数を持っています。これらはすべて "ネイティブ"つまり整数と文字列です。たとえば、文字列を解析して単語の数と単語の平均長さの両方を見つける関数があるとします。Python初心者:Pythonで複数のInt/String結果を返す
C/C++では、関数に2つのパラメータを渡すために@を使用します。 Pythonでは、整数と文字列は参照渡しではなく値渡しであるため(少なくともこれは試行錯誤で理解できるものです)、次のコードは機能しません:
def analyze(string, number_of_words, average_length):
... do some analysis ...
number_of_words = ...
average_length = ...
上記の場合、関数の範囲外の値は変更されません。私は現在やっていることはそうのような辞書を使用している:
def analyze(string, result):
... do some analysis ...
result['number_of_words'] = ...
result['average_length'] = ...
をそして私は、このような関数を使用します。ただし
s = "hello goodbye"
result = {}
analyze(s, result)
、右感じることはありません。これを実現するPythonの正しい方法は何ですか?私は関数が数十の結果ではなく2-3の結果を返す場合のみを指していることに注意してください。また、私は、Pythonへの完全な初心者ですので、私は、私はここに些細な何かが欠落している可能性があり知っている...
おかげ
について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を参照してください。 "オブジェクト参照による呼び出し" – tzot