Pythonでは、関数にオブジェクトを渡すとき、そのオブジェクトへの参照が渡されます。これは、他の言語では値渡し(コピー)が行われる場面で、Pythonでは参照渡しが行われるということを意味します。

例えば、次のようなコードを考えてみましょう。

def sorting(x):
    A = x  # Passed by reference?
    A.sort()

def testScope():
    L = [5,4,3,2,1]
    sorting(L)  # Passed by reference?
    return L

print(testScope())

このコードでは、sorting関数にリストLを渡しています。そして、sorting関数内でリストALを代入し、A.sort()を実行しています。この結果、元のリストLもソートされることになります。

これは、sorting関数にLを渡すとき、LのコピーではなくLへの参照が渡されるためです。そのため、sorting関数内でAをソートすると、元のリストLもソートされることになります。

このように、Pythonでは関数にオブジェクトを渡すときは参照渡しが行われ、関数内でオブジェクトを変更すると、その変更は元のオブジェクトにも反映されます。これは、Pythonの重要な特性の一つであり、他の言語との違いの一つでもあります。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です