【Python】関数に渡した値・配列の違い

この記事では、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の要素は呼び出し元も変化しています。

関連記事

Python入門 サンプル集

コメント