今日のインタビューで問題が発生しました
DEF FUNC(L = []):
l.append(A)
リターンリットル
FUNC( 'A')
FUNC( 'ABC'、[1,2,3,4])
FUNC(10)
[ 'A']
[1,2,3,4、 'ABC']
[ 'A'、10]
あなたは、コンテナ内部の内容の次のFUNC()関数の一覧を続ける場合でも、割り当て、それならば、それは、念の割り当てはありませんが、変更されていますか?
コードの準備で見つかった次のコードからは、機能と参照の問題に注意を払います。そこに関数内のコンテナの定義されたリストがあり、それはときに、関数の定義作成されるため。関数は、コンテナの参照のリストなので、フロントへの影響の背中の結果を返すため。2つの変数がコンテナのアドレスを参照し、同時に人気話します。二つの変数のアドレスデータの変更が影響を受けている中で、それは浅いコピーを言うことができます。
[17]中:DEF FUNC(L = []): ...:l.append(A) ...:戻りL ...: ...: [18]において:L1 = FUNC(」 ') ABC」、[1,2,3,4]):L2 = FUNC([19]で' 、L3 = FUNC(10):[20]において、 [21]において:プリント(L1、L2、L3) [ 'A'、10] [1、2、3、4、 'ABC'] [ 'A'、10]