ページへ戻る
− Links
印刷
Python/値渡しと参照渡し
の編集 ::
NJF Wiki
xpwiki
:
Python
/
値渡しと参照渡し
の編集
# d6a61e89 の編集
ページ内容:
*Pythonでの値渡しと参照渡し [#d6a61e89] 多くの言語にはデータの「値渡し」「参照渡し」などと言われる仕組みがそなわっていますが、Pythonにも同じ仕組みがあります。 値渡しとは関数の引数として変数を指定したとき、関数内で引数を変更しても、もとの変数は変更されないことを言います。 def addOne(x): x = x + 1 print x y = 1 addOne(y) print y 結果 2 1 値渡しの場合は、このように関数内で引数に1加算しても、関数外の変数には影響しません。 一方でリストなどを引数とした場合には参照渡しとなり、その変数の中身を書きかえることができます。 def addOneList(l): l[0] = l[0] + 1 print l m = [0,1,2,3] addOneList(m) print m 結果 [1, 1, 2, 3] [1, 1, 2, 3] 値渡しになるか、参照渡しになるかはその変数によって変わります。値渡し、つまり変更ができない変数を「immutable」、参照渡し、つまり変更可能な変数を「mutable」と呼びます。 大まかにはPythonでは数値や文字列などはimmutable、リストや辞書型、クラスのインスタンスなどはmutableです。 これは他の言語とほぼ同様ですが、他の言語では文字列が参照渡しで行われることも多い一方で、Pythonでは値渡しという所は覚えておく必要があります。
編集の要約:
Q & A 認証:
ページ更新時は次の質問にお答えください。(プレビュー時は必要ありません)
Q:
「名古屋」の読みがな?(ひらがなで)
A:
お名前:
タイムスタンプを変更しない
テキスト整形のルールを表示する
[1]
Links list
(This host) = https://njf.jp
(This host)
/cms/modules/xpwiki/?cmd=edit&help=true&page=Python%2F%E5%80%A4%E6%B8%A1%E3%81%97%E3%81%A8%E5%8F%82%E7%85%A7%E6%B8%A1%E3%81%97