q = p 时若源槽确实拥有 slife 对象,则把所有权影子标志转移:先按覆盖释放处理目标槽原有对象,再置 q=1 / p=0。于是 q = p; p = None 不再释放对象(q 不悬垂),出口只释放 q 恰好一次。自赋值 p = p 与源不拥有(普通/外来指针)保持原状。
q = p 时若源槽确实拥有 slife 对象,则把所有权影子标志转移:先按覆盖释放处理目标槽原有对象,再置 q=1 / p=0。于是 q = p; p = None 不再释放对象(q 不悬垂),出口只释放 q 恰好一次。自赋值 p = p 与源不拥有(普通/外来指针)保持原状。