调皮的控制台

屏幕快照 2018-11-22 下午11.18.54

Python 的交互控制台有一个特性是 _ 会自动保存上一个表达式输出的非 None 值.

因此在删除y的以后 SomeClass 实例的引用计数器的值为1,而不是0.

所以 __del__ 不会被调用。

当有新的表达式在控制台输出其他非 None 值时, _ 就会改为保存新的输出值。

这时 SomeClass 实例的引用计数器的值就会变成0,GC就会启动调用 __del__ 并回收对象。

屏幕快照 2018-11-22 下午11.30.24

posted @ 2018-11-22 23:31  暮晨  阅读(447)  评论(0编辑  收藏  举报

Aaron Swartz was and will always be a hero