\

Pythonでは、すべての変数がオブジェクトへの参照になります。オブジェクトは固有のIDを持っており、id()関数でオブジェクトのIDを確認することができます。

str1 = "hello"
print(id(str1))  # str1のIDを表示
str1 = "hi"
print(id(str1))  # str1のIDを表示(値が変わるとIDも変わる)

また、複数の変数が同じオブジェクトを参照することができます。

list1 = [1, 2, 3]
list2 = list1  # list1の参照をlist2にコピー
print(list1 is list2)  # True

Pythonの引数は参照の値渡しであることを理解することも重要です。値渡しでは、引数に値を変数にコピーして渡します。参照渡しでは、引数に値ではなく値が格納されているキー(メモリアドレスや固有のidなど)を渡します。参照の値渡しでは、引数に値のキーを変数にコピーして渡します。

def add_one(in_list):
    print(id(in_list))  # in_listのIDを表示
    in_list.append(1)  # in_listに1を追加

out_list = [1, 2, 3]
print(id(out_list))  # out_listのIDを表示
add_one(out_list)
print(id(out_list))  # out_listのIDを表示(関数内でリストが変更される)

このように、Pythonの変数と参照の仕組みを理解することは、効率的なコードを書くために非常に重要です。

投稿者 admin

コメントを残す

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