首页 > 解决方案 > Django python - 请求之间共享类属性值吗?

问题描述

假设我在 Python 中有以下类:

class MyClass():
    cls_att = []

现在,在其中一个请求中,我正在执行以下操作:

MyClass.cls_att.append('a')

如果在此“附加”之后立即,另一个请求将获得该属性:

lst = MyClass.cls_att

他们会在“lst”中得到什么?它是空列表还是 ['a']?

标签: pythondjangooop

解决方案


这取决于。

由同一进程服务的任何请求都将使用相同的类,因此将看到添加的数据。由不同进程提供服务的请求将看到先前请求在该进程上添加的任何数据。

因此,由于您无法预测哪个进程将服务于任何特定请求,因此您不能指望这会发生或不发生。换句话说,根本不要这样做。


推荐阅读