【发布时间】:2018-11-01 13:48:38
【问题描述】:
假设我在 Python 中有以下类:
class MyClass():
cls_att = []
现在,在其中一个请求中,我正在执行以下操作:
MyClass.cls_att.append('a')
如果紧跟在这个“追加”之后,另一个请求将获得该属性:
lst = MyClass.cls_att
他们会在“lst”中得到什么?它是空列表还是 ['a']?
【问题讨论】:
假设我在 Python 中有以下类:
class MyClass():
cls_att = []
现在,在其中一个请求中,我正在执行以下操作:
MyClass.cls_att.append('a')
如果紧跟在这个“追加”之后,另一个请求将获得该属性:
lst = MyClass.cls_att
他们会在“lst”中得到什么?它是空列表还是 ['a']?
【问题讨论】:
视情况而定。
由同一进程处理的任何请求都将使用相同的类,因此会看到添加的数据。由不同进程处理的请求将看到该进程先前请求添加的任何数据。
因此,由于您无法预测哪个进程将服务于任何特定请求,因此您不能指望这会发生或不会发生。换句话说,根本不要这样做。
【讨论】: