-2

重複の可能性:
Pythonの「驚き最小の原則」:可変のデフォルト引数引数の
デフォルト値

クラスに属するリストがどのように動作するかを説明するのに問題があります。

>>> class A(object):
...     def __init__(self, L=[]):
...         self.L = L
...
>>> a1 = A()
>>> a2 = A()
>>> a1.L.append("test")
>>> print a1.L
['test']
>>> print a2.L
['test']

この例では、a2.Lはどのようにして値を取得しましたか?a1のリストにアイテムを追加しただけです。彼らが今リストを共有しているのはどうですか。

ありがとう、

ヘンリー

4

1 に答える 1

1

あなたが得るすべてのコメントの簡単な要約:

問題はクラスとは関係ありません。これは、関数のデフォルト引数に値を格納していて、デフォルト引数が関数オブジェクトに格納されているためです。

于 2012-07-10T20:08:34.783 に答える