class ItemList(object): """ リストを管理持つクラス """ def __init__(self, items=[]): self.items=itemsさてこの実装何がいけないでしょうか? a=ItemList() b=ItemList() a.items.append('hi') print a.items # ['hi'] print b.items # ['hi'] # あれ? print a.items==b.items # True # あらま pythonでは関数のデフォルト引数は毎回同じインスタンスなのです。ItemList()が呼ばれる度にitems=[]が評価されて新しい空リストが与えられそうな気がするんだけどそうじゃない。 class ItemListCorrect(object): def __init__(self, items=None