2017-01-26 3 views
0

私はPythonの関数が参照渡しされていることを言われたが、ここでのように、元のdataが変更された例Python関数は参照渡しですか?

def append_element(some_list, element): 
    some_list.append(element) 

data = [3, 1, 2] 
append_element(data, 4) 

print(data) 
[3,1,2,4] 

です。 Pythonの機能が実際に参照渡しされている場合はどのような私は混乱して感じさせることは、なぜこの関数呼び出しsorted()後、data

y = sorted(data) 
print(y) 
[1,2,3,4] 
print(data) 
[3,1,2,4] 

変化しなかったのか?

+2

Pythonは参照渡しではありません。 – user2357112

+0

私は「データ解析のためのPython for Python」を付録390ページを読んでいました。また、参照渡しでない場合、最初の例を説明する方法は? – ftxx

+0

Pythonは最近、かなり一般的なパラメータ渡しモデルを使用していますが、名前はまだありません。これは、「オブジェクトによる呼び出し」または(特にJavaの場合)「値渡し」と呼ばれることもありますが、渡す値は実際には参照値であることに留意する必要があります。私は通常、次の説明に人々を指します:http://nedbatchelder.com/text/names.html – user2357112

答えて

2

sorted()からの出力は、新しい、新しいリストです。それは議論と同じではありません。

関連する問題