Django http方法中 request参数与 self.request 属性
背景:
Debug:
发现在request参数的内存地址与 self.request属性地址是一样
猜想:
request 是个可变对象
查询资料及请教同事:
不可变(immutable)对象类型
int
float
decimal
complex
bool
str
tuple
range
frozenset
bytes
可变(mutable)对象类型
list
dict
set
bytearray
user-defined classes (unless specifically made immutable)
结论:
用户自定义类的实例 在没有特殊处理为不可变对象时 都为可变对象
探索:
用户自定义的类怎么写才能让实例变为不可变对象?
重写类的 setattr方法 def __setattr__(self, key, value): raise AttributeError('不可变类')