分别用于初始化对象的属性和释放类所占用的资源。

构造函数

  用于初始化类的内容部状态,Python提供的构造函数式 __init__(),也就是当该类被实例化的时候就会执行该函数,__init__()方法是可选的,如果不提供,Python 会给出默认的__init__方法。

析构函数

  “__del__”就是一个析构函数了,当使用del 删除对象时,会调用他本身的析构函数,另外当对象在某个作用域中调用完毕,在跳出其作用域的同时析构函数也会被调用一次,这样可以用来释放内存空间。  

  __del__()也是可选的,如果不提供,则Python 会在后台提供默认析构函数

  如果要显式的调用析构函数,可以使用del关键字: del obj

当我们用del删除一个对象时,其实并没有直接清除该对象的内存空间。Python 采用‘引用计数’ 的算法方式来处理回收,即:当某个对象在其作用域内不再被其他对象引用的时候,Python 就自动清除对象。

  而析构函数 __del__()在引用的时候就会自动清除被删除对象的内存空间。

class Test(object):def __init__(self, name):self.name = nameprint('这是构造函数')def say_hi(self):print('hell, %s' % self.name)def __del__(self):print('这是析构函数')obj = Test('bigberg')obj.say_hi()del obj

63. 请简述构造方法和析构方法的作用?相关推荐

  1. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第32讲:PHP 构造方法、析构方法

    陈力:传智播客古代 珍宝币 泡泡龙游戏开发第32讲:PHP 构造方法.析构方法 构造方法__construct()的主要作用是完成对新对象的初始化,没有返回值,析构方法__destruct的作用主要用 ...

  2. python中构造方法和析构方法的区别_类的构造方法、析构方法、实例方法

    类的构造方法.析构方法.实例方法 上一个小节我们学习了 Python 的类属性和实例属性的知识点,这个小节我们还是会学习关于类的知识.这节课我们会学习类的构造方法.析构方法和实例方法. 1. 实例方法 ...

  3. 009-对象—— 构造方法__construct析构方法__destruct使用方法 PHP重写与重载

    <?php /**构造方法__construct析构方法__destruct使用方法 PHP重写与重载*/ //构造方法:当实例化对象时,自动运行的方法 /*class channel{func ...

  4. java 构造方法和析构方法_PHP面向对象程序设计之构造方法和析构方法详解

    本文实例讲述了PHP面向对象程序设计之构造方法和析构方法.分享给大家供大家参考,具体如下: 构造方法和析构方法是对象中的两个特殊方法,它们都与对象的生命周期有关.构造方法是对象创建完成后第一个被对象自 ...

  5. python中构造方法和析构方法的区别_基于Python构造方法与析构方法的研究

    基于 Python 构造方法与析构方法的研究 林观德 [期刊名称] < <现代职业教育> > [年 ( 卷 ), 期] 2019(000)018 [摘要] Python 语言是 ...

  6. 【Day08】请简述虚拟 DOM 中 Key 的作用和好处

    请简述虚拟 DOM 中 Key 的作用和好处 官网地址:https://cn.vuejs.org/v2/api/#key key 的作用 key 的特殊 attribute 主要用在 Vue 的虚拟 ...

  7. php 构造 析构,php 构造方法和析构方法

    1.PHP中只能有一个构造方法,同样的普通方法也不能重名,也就没有了类似于C++的多态. class Person{ public $name; private $age; public functi ...

  8. Java构造方法与析构方法实例剖析

    Java构造方法 类有一个特殊的成员方法叫作构造方法,它的作用是创建对象并初始化成员变量.在创建对象时,会自动调用类的构造方法. 构造方法定义规则:Java 中的构造方法必须与该类具有相同的名字,并且 ...

  9. Python编程基础17:构造方法和析构方法

    文章目录 一.本讲学习目标 二.构造方法 (一)概述 (二)案例演示 三.析构方法 (一)概述 (二)案例演示 四.self的使用 (一)self概述 (二)案例演示 一.本讲学习目标 掌握构造方法的 ...

最新文章

  1. C++ 笔记(27)— 指针变量、数组和指针、指针数组、数组指针、指针常量与常量指针
  2. R语言e1071包中的支持向量机:构建nu-classification类型的支持向量机SVM并分析不同nu值惩罚下模型分类螺旋线型(sprials)线性不可分数据集的表现
  3. vscode 怎么让光标一下子跳到行尾部_动图演示23个常用 VsCode 快捷键(Window Mac)...
  4. Vue内容分发slot
  5. rx580网络适配器下载_通过Rx和数据绑定简化RecyclerView适配器
  6. python watchdog休眠_python watchdog
  7. c语言程序设计的反思,C语言程序设计教学反思
  8. web聊天界面html,PC端Web聊天界面+代码分享(HTML+CSS)
  9. android lottie大小,android-Lottie动画填充
  10. NUVOTON新唐单片机使用总结
  11. LabVIEW 编程更改波形图Plots是否可见
  12. Java面试题!mysql安装教程图解
  13. android网络权限动态,Android权限详解(含6.0动态申请)
  14. YOLO模型train.py文件报错:size mismatch for last_layer0.6.weight: copying a param with shape torch.
  15. C语言实现将彩色BMP位图转化为二值图
  16. 项目管理~基于禅道敏捷开发的详细流程图,关键节点及描述,诠释敏捷开发实施细节
  17. JS身份证号码校验大全史上最全号称公安局安全监测
  18. C,C++,Python实现兔子生兔子问题
  19. 第九天 03-破解linux密码
  20. MOV指令是数据传送指令

热门文章

  1. java 实现鼠标移动事件
  2. 怎么判断自己是否适合转行软件测试
  3. 爬虫网易LOFTER图片(适用于类似网页,如百度贴吧 )
  4. 科技进步计算机开机速度,笔者教你电脑开机慢怎么办
  5. java 社会统一信用代码分解,获取登记管理部门代码、机构类别代码、登记管理机关行政区划码、 主体标识码、校验码
  6. C++最小/最大(min;max;minmax;min_element;max_element;minmax_element)
  7. 三个表情纪念我的像素画讲座
  8. 今天收到一封MAIL,是转发了N次转发过来的,标题就叫 FW 听说是真有此事 ,内容如下(我是不信的,至于你怎么
  9. wps里面如何使用计算机,wps表格中怎么在多行之间每行插一行?
  10. 塑料粘结硬质铁氧体磁铁的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告