码迷,mamicode.com
首页 > 编程语言 > 详细

Python_021(内置方法讲解二)

时间:2018-08-03 22:41:26      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:网络   erro   elf   trace   not   day   需要   ast   ***   

一.内置方法二

1.__del__方法:

  a:构造方法:创建一个空间,  析构方法;释放一个空间;

  b:触发del的情况:Python解释器的垃圾回收机制,和遇到 del 对象名

c:析构方法的思想:

class A:
    def __del__(self):
        print(self)
a = A()
del a            #这里先执行了__del__方法,再删除对象a,因为执行__del__方法时还要传入self;
print(a)
#输出结果:
<__main__.A object at 0x0000013CF5F59128>  被执行了
Traceback (most recent call last):
  File "D:/Python/course/23.模块/day23/3.析构方法.py", line 49, in <module>
    print(a)
NameError: name a is not defined

d:python的垃圾回收机制:

class A:
    def __del__(self):
        print(Python解释器会在程序跑结束后执行我)
a = A()
print(a)
#输出结果:
<__main__.A object at 0x000001F823159128>
Python解释器会在程序跑结束后执行我

总结:del方法:是去归还/释放一些在创建对象时借用的一些资源(有可能是操作系统的资源)

例子:像一些常用的变量在Python底层的一些对象,都有Python解释器帮你回收,

而像一些像操作系统借用的资源就需要你执行回收方法自己释放;

像文件句柄;执行close操作,还有一些网络资源;

3.计算机内部执行一些小常识:

a:申请一块空间 操作系统会分配给你的  b:在这一块空间之内的所有事,归你的Python解释器管理;

*****所以在你借用了操作系统资源时,在程序结束之前要还回去,在del方法中写关闭代码;

Python_021(内置方法讲解二)

标签:网络   erro   elf   trace   not   day   需要   ast   ***   

原文地址:https://www.cnblogs.com/0627zhou/p/9416391.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!