几乎每个 Python 教程都会写「浅拷贝只复制一层,深拷贝递归复制」。但真到排查 bug 时,光背这句不够:为什么 deepcopy 一个不可变对象有时返回原对象?为什么自定义类里要有 __deep