1

在 Django 内部,我确实有:

class A(object):
    _attribute = []

当我在执行对一切的请求时创建对象时,Django.runserver一切正常。在这一步中,我填写a = A()._attribute.extend(['string',]).

当我第二次执行相同的请求时,我看到实例化对象之前

>>> 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 回答