IDLE与pycharm执行相同代码结果却不同,原因分析

2019-07-24 09:26:12来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

  最近在熟悉Python的class类的时候,无意中发现同样的代码,在pycharm和IDLE中结果不同,闲话少说先上代码:

 1 class aa():
 2     def __init__(self,name):
 3         print("my name is %s" % name)
 4     def __del__(self):
 5         print("delete ok")
 6     def sit(self):
 7         print('sit down')
 8 if __name__ =="__main__":
 9     a = aa("liming")
10     b = aa('suyang')
11     del a
12     b.sit()
Python

IDLE中的结果:

  

 

Pycharm中的结果:

  

 

 

   可以看出pycharm中的 __del__方法被调用了两次。百度了一波发现了原因:

    IDLE:是Python安装后自带的编译器,是交互模式没有回收实例。

    pycharm:是一套优化后编译器运行后会释放资源,所以会自动触发__del__回收所有创建的实例。另外pycharm的debug模式不会自动触发回收机制,运行结果与IDLE一致。

最后:如果不想让pycharm中__del__内容多次打印的话,建议自定义del方法,这样就可以避免del的内容多次显示


原文链接:https://www.cnblogs.com/yifengyu/p/11213217.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:2.时间戳转换时间字符串函数

下一篇:Python学习日记(三) 学习使用dict