• 技术文章 >后端开发 >Python教程

    在Python复制中对象生命周期如何使用

    php中世界最好的语言php中世界最好的语言2018-04-09 11:56:20原创991
    这次给大家带来在Python复制中对象生命周期如何使用,使用Python复制对象生命周期的注意事项有哪些,下面就是实战案例,一起来看一下。

    Python的浅复制以及深复制我了解的并不多,我不清楚shutil中的copy1和copy2是不是算是浅复制和深复制?这两个操作,一个是文件属性重建,还有一个是文件属性不变。不知道对象的复制是否可以以此类比?

    在复制之前,为了能够观看一下GC的执行,定义一个特殊的类和对象。测试代码如下:

    class Demo:
        def del(self):
           print("Removing{0}".format(id(self)))
    x = Demo()
    del x

    程序执行结果如下:

    E:\01_workspace\02_programme_language\03_python\03_OOP\2017\08>pythoncopy1.py
    Removing1772226785520

    接下来构造浅复制的例子:

    >>>obj_list1 = [Demo(),Demo()]
    >>>obj_list2 = obj_list1[:]
    >>> del obj_list1
    >>> del obj_list2
    Removing1902510644416
    Removing1902510644360

    从上面的结果看,第一次del并没有触发对象销毁的方法执行。这是在交互界面中进行调试出现的结果,如果代码是写到一个具体的文件中,那么程序执行的结果有可能不同。当所有的语句都写到同一个文件中的时候,文件中的对象作用域会有轻微的调整。这是值得我们注意的。

    另一种常见的浅复制方法:

    >>> o1 =o2 = Demo()
    >>> del o1
    >>> del o2
    Removing1902510136568

    相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

    推荐阅读:

    python怎么逐行读写txt文件

    python怎么批量读取txt文件为DataFrame格式

    以上就是在Python复制中对象生命周期如何使用的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Python 周期 生命
    上一篇:在Window10中Python3.5怎么安装opencv 下一篇:python3将python代码打包成exe文件的方法
    Web大前端开发直播班

    相关文章推荐

    • 详细介绍Python之Pandas知识点• Python数据类型详解之字符串、数字• Python归纳总结之json标准库• 详细讲解Python之Seaborn(数据可视化)• 完全掌握Python数学相关模块

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网