1

Djangoの内部には次のものがあります:

class A(object):
    _attribute = []

オブジェクトへのリクエストを実行中にオブジェクトを作成すると、Django.runserverすべてが正常に機能します。このステップの間、私は記入しa = A()._attribute.extend(['string',])ます。

同じリクエストを2回目に実行すると、オブジェクトをインスタンス化する前に表示されます

>>> print A._attribute
['string',]

Memcached がオンになっています。しかし、私の理解では、これらのオブジェクトをキャッシュしないため、責任を負うことはできません

私は過去にそのようなものを見たことがありません。助けてくれてありがとう!!!

4

2 に答える 2

4

_attributeはクラス全体に関連付けられているため、すべてのインスタンスが同じ_attribute値になります。

これを回避するには、インスタンス変数を使用します

class A(object):
    def __init__(self):
        self._attribute = []
于 2013-02-06T08:13:52.693 に答える
1

変更可能なクラス属性を使用しています。_attributeインスタンスのメンバーではなく、クラスA自体のメンバーです。を使用しextendているため、python が実行されている限り、すべてのインスタンスの値を変更しています。

于 2013-02-06T08:14:32.250 に答える