zoukankan      html  css  js  c++  java
  • IDLE与pycharm执行相同代码结果却不同,原因分析

      最近在熟悉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的内容多次显示

  • 相关阅读:
    Java测试代码及原理
    mysql性能调优
    markdown
    nginx
    触发器实际使用时容易碰到的几个小坑
    redis
    log4j
    Json
    导入工程报错The import android cannot be resolved
    mybatis小记
  • 原文地址:https://www.cnblogs.com/yifengyu/p/11213217.html
Copyright © 2011-2022 走看看