Pythonのパス・バイ・オブジェクト・リファレンス[TBC]

関数は(および意志アクセス)発呼者によって使用されるメモリ内の同じオブジェクトへの参照を受け取ります。

しかし、それは、呼び出し側がこのオブジェクト内に格納していることのボックスを受信しません。パスごとの値として、

この関数は、独自のボックスを提供し、自分自身のための新しい変数を作成します。

  ボックス オブジェクト
参照渡し 同じボックス 同じオブジェクト
値渡し 異なる箱 異なる値
渡しのオブジェクト 異なる箱 同じオブジェクト

 

 

 

dis.dis()バイトコード命令を印刷します。

リスト+ = [1,2] INPLACE_ADD

リスト=リスト+ [1,2] BINARY_ADD

Pythonはタイプを処理する方法与える  += 作成することによって、特別  __iadd__ ならびに方法  __add__

その意図は、変更可能なタイプは、のようなことである  list、で自分自身を変異させます  __iadd__ (そして返す  selfあなたは非常にトリッキーな何かをやっている場合を除き、)

によって参照: 

1.  https://stackoverflow.com/questions/15376509/when-is-ix-different-from-iix-in-python

2.   https://robertheaton.com/2014/02/09/pythons-pass-by-object-reference-as-explained-by-philip-k-dick/

おすすめ

転載: www.cnblogs.com/noralee/p/12173462.html