0

質問のタイトルをもっとうまくできたらいいのにと思います。
とにかく、ここにtest.pyがあります

class test(object):
    tags = []
    def __init__(self):
       self.tags= self.tags + ['tag']

testA= test()
testB = test()

print testA.tags

出力は次のとおりです。

['鬼ごっこ']

今、私はクラステストをに変更します

class test(object):
    tags = []
    def __init__(self):
        self.tags.append('tag')

出力は次のとおりです。

['タグ'、'タグ']

['tag']どちらの場合も最初の結果を期待していました。

4

1 に答える 1

1

self.tags + ['tag']新しいオブジェクトを作成します。そして、 に割り当てられself.tagsます。

self.tags.appendクラスの同じtagsオブジェクトで動作します。したがって、すべてのオブジェクトは同じtagsオブジェクトを共有し、それに追加します。

于 2013-03-30T14:22:43.097 に答える