【问题标题】:Django python - are class attributes values shared between requests?Django python - 请求之间共享类属性值吗?
【发布时间】:2018-11-01 13:48:38
【问题描述】:

假设我在 Python 中有以下类:

class MyClass():
    cls_att = []

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

MyClass.cls_att.append('a')

如果紧跟在这个“追加”之后,另一个请求将获得该属性:

lst = MyClass.cls_att

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

【问题讨论】:

    标签: python django oop


    【解决方案1】:

    视情况而定。

    由同一进程处理的任何请求都将使用相同的类,因此会看到添加的数据。由不同进程处理的请求将看到该进程先前请求添加的任何数据。

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

    【讨论】:

      猜你喜欢
      • 2015-11-03
      • 1970-01-01
      • 1970-01-01
      • 2018-10-14
      • 1970-01-01
      • 2020-06-16
      • 2015-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多