0
点赞
收藏
分享

微信扫一扫

万一宇宙不走生命周期?

祈澈菇凉 2022-02-09 阅读 23
python

万一宇宙不走生命周期?

在跟一个后辈解释python对象中的销毁函数__del__时说,它相当于一个对象被垃圾回收gc时的一个回调函数,于是我给了他一个例子

class Foo:
    def __del__(self):
        print('del')
f = Foo()
f = 1 # 当执行这一句时,f会被gc,从而执行__del__,打印del

__del__并不能保证执行,例如当你程序启动后,直接在进程里kill了;或者你启动了python交互式shell,然后点了右上角的叉,直接给terminate,这些情况都是不会执行__del__

他说,应该有那种程序关闭时执行的函数吧

我说,有atexit模块就可以注册程序结束时要执行的回调函数,但是那也是没用的,程序被kill了,程序本身是感知不到的。

程序不会管理自己,它一定在某个载体上,被某个东西使用,就像你执行了python,他的使用者是操作系统,操作系统可以选择让python走正常结束的流程,正常流程就是对象都gc,退出的回调函数也都执行;但也一定有权力让他悄无声息的消失,python无法得知将会面临的命运

他若有所思

我接着说,举个例子,就像我们使用的电脑系统,我们可以正常关机,就是点击系统里的关机按钮,然后系统会保存相关文件;我们也可以直接拔了电源,这种情况下,系统是无法感知到的,它更没有办法做任何事情,对它来说这是超验的。

他说大概懂了

在吃饭的时候,我突然意识到,我们所在的宇宙也是个系统,会不会有一天,上帝会直接把电源给切断,让宇宙不走她的生命周期呢?

举报

相关推荐

0 条评论