Python では、値による受け渡しと参照による受け渡しは、関数パラメーターの受け渡しに関する 2 つの概念です。
値による受け渡しとは、関数が呼び出されるときにパラメーターの値をコピーして関数内に渡すことを指します。これは、関数内のパラメーター値を変更しても、関数の外部の変数には影響を与えないことを意味します。例えば:
def change_value(x):
x = 10
num = 5
change_value(num)
print(num) # 输出: 5
# 在这个例子中, `num` 是一个整数变量。当调用 `change_value` 函数时,函数参数 `x` 接收到了 `num` 的值,但在函数内部对 `x` 的修改并不会影响到 `num` 的值。
参照渡しとは、関数呼び出し時にパラメータのリファレンス(メモリアドレス)を関数内に渡すことを指します。これは、関数内のパラメーター値を変更すると、関数の外部の変数に影響を与えることを意味します。例えば:
def change_list(lst):
lst.append(4)
my_list = [1, 2, 3]
change_list(my_list)
print(my_list) # 输出: [1, 2, 3, 4]
# 在这个例子中, `my_list` 是一个列表变量。当调用 `change_list` 函数时,函数参数 `lst` 接收到了 `my_list` 的引用,因此在函数内部对 `lst` 的修改也会影响到 `my_list` 。
Python の受け渡しメソッドは実際には値渡しであることに注意してください。不変型 (整数、文字列、タプルなど) の場合、値のコピーが渡されるため、関数内のパラメーターを変更しても関数の外部の変数には影響しません。変数タイプ (リスト、辞書など) の場合、参照のコピーが渡されるため、関数内のパラメーターを変更すると、関数の外部の変数に影響します。
上記の説明がお役に立てば幸いです。他にご質問がございましたら、お気軽にお問い合わせください。