この記事では、Pythonにおいて関数に渡した値・配列の違いをソースコード付きで解説します。
引数定義の処理差(値・配列)
Pythonでは、関数の引数に渡した変数は、「値」か「配列」によって次のように処理が異なります。
値|関数に渡した値が変化しても、呼び出し元の変数には影響ありません。
配列|関数に渡した配列要素が変化すると、呼び出し元の配列にも影響がでます。
そのため、配列を引数にして渡した場合、要素を変更した配列をreturn文で返す必要はありません。
ソースコード(Python3)
サンプルプログラムのソースコードです。
# -*- coding: utf-8 -*- # 関数の定義 def fanc(var, array): var = 10 array[0] = 10 var = 0 array = [0, 1, 2] # 関数呼び出し fanc(var, array) print(var) # 0 print(array) # [10, 1, 2]
変数varの呼び出し元の値は変化なしですが、配列arrayの要素は呼び出し元も変化しています。
コメント