タグ

Programmingとディープコピーに関するchess-newsのブックマーク (2)

  • シャローコピーとディープコピーの違い - くろの雑記帳

    なにそれ? シャローコピー(Shallow Copy)、ディープコピー(Deep Copy)、どちらもコピーすることには変りないのですが、何をコピーしているのかが違います。 はじめて聞いた人は何を言っているか訳がわからないと思いますが、 特にオブジェクト指向プログラミングにおいて、これを知らないと確実にハマります。 シャローコピー シャローコピーというのは、コピー元のオブジェクトとコピー先のオブジェクトがメモリ上の同じデータ(インスタンス変数)を参照しています。 分かりにくいと思うので、図で示すとこんなイメージでしょうか。 ですので、コピー元のオブジェクトに対してインスタンス変数に変更を加えると、コピー先のオブジェクトが参照しているデータが同じ物なので、コピー先のオブジェクトから見たインスタンス変数も変更されることになります。 シャローコピーは、参照のコピーのみを行うということですね。 デ

    シャローコピーとディープコピーの違い - くろの雑記帳
  • Pythonの値渡しと参照渡し - amacbee's blog

    これはPython Advent Calendar 2016 7日目の記事です. アドベントカレンダーの日程を勘違いしてしまっていたので,社内向けに作ったPython資料を使いまわすことでお茶を濁します。。。 Pythonの値渡しと参照渡しについてまとめてみます. Pythonでは,変数や関数に値を渡す場合すべて参照渡しで渡されています.例えば挙動だけ見れば値渡しに見えるint型でも,値が変更されるまでは元の値と同一のオブジェクトを参照しています. 例を見てみましょう. >>> def foo(a): ... print(a, id(a)) ... a += 1 ... print(a, id(a)) ... >>> b = 0 >>> print(b, id(b)) 0 4297514880 # 'b' 用の領域が確保されている >>> foo(b) 0 4297514880 # ここま

    Pythonの値渡しと参照渡し - amacbee's blog
  • 1