63. 请简述构造方法和析构方法的作用?
分别用于初始化对象的属性和释放类所占用的资源。
构造函数
用于初始化类的内容部状态,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. 请简述构造方法和析构方法的作用?相关推荐
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第32讲:PHP 构造方法、析构方法
陈力:传智播客古代 珍宝币 泡泡龙游戏开发第32讲:PHP 构造方法.析构方法 构造方法__construct()的主要作用是完成对新对象的初始化,没有返回值,析构方法__destruct的作用主要用 ...
- python中构造方法和析构方法的区别_类的构造方法、析构方法、实例方法
类的构造方法.析构方法.实例方法 上一个小节我们学习了 Python 的类属性和实例属性的知识点,这个小节我们还是会学习关于类的知识.这节课我们会学习类的构造方法.析构方法和实例方法. 1. 实例方法 ...
- 009-对象—— 构造方法__construct析构方法__destruct使用方法 PHP重写与重载
<?php /**构造方法__construct析构方法__destruct使用方法 PHP重写与重载*/ //构造方法:当实例化对象时,自动运行的方法 /*class channel{func ...
- java 构造方法和析构方法_PHP面向对象程序设计之构造方法和析构方法详解
本文实例讲述了PHP面向对象程序设计之构造方法和析构方法.分享给大家供大家参考,具体如下: 构造方法和析构方法是对象中的两个特殊方法,它们都与对象的生命周期有关.构造方法是对象创建完成后第一个被对象自 ...
- python中构造方法和析构方法的区别_基于Python构造方法与析构方法的研究
基于 Python 构造方法与析构方法的研究 林观德 [期刊名称] < <现代职业教育> > [年 ( 卷 ), 期] 2019(000)018 [摘要] Python 语言是 ...
- 【Day08】请简述虚拟 DOM 中 Key 的作用和好处
请简述虚拟 DOM 中 Key 的作用和好处 官网地址:https://cn.vuejs.org/v2/api/#key key 的作用 key 的特殊 attribute 主要用在 Vue 的虚拟 ...
- php 构造 析构,php 构造方法和析构方法
1.PHP中只能有一个构造方法,同样的普通方法也不能重名,也就没有了类似于C++的多态. class Person{ public $name; private $age; public functi ...
- Java构造方法与析构方法实例剖析
Java构造方法 类有一个特殊的成员方法叫作构造方法,它的作用是创建对象并初始化成员变量.在创建对象时,会自动调用类的构造方法. 构造方法定义规则:Java 中的构造方法必须与该类具有相同的名字,并且 ...
- Python编程基础17:构造方法和析构方法
文章目录 一.本讲学习目标 二.构造方法 (一)概述 (二)案例演示 三.析构方法 (一)概述 (二)案例演示 四.self的使用 (一)self概述 (二)案例演示 一.本讲学习目标 掌握构造方法的 ...
最新文章
- C++ 笔记(27)— 指针变量、数组和指针、指针数组、数组指针、指针常量与常量指针
- R语言e1071包中的支持向量机:构建nu-classification类型的支持向量机SVM并分析不同nu值惩罚下模型分类螺旋线型(sprials)线性不可分数据集的表现
- vscode 怎么让光标一下子跳到行尾部_动图演示23个常用 VsCode 快捷键(Window Mac)...
- Vue内容分发slot
- rx580网络适配器下载_通过Rx和数据绑定简化RecyclerView适配器
- python watchdog休眠_python watchdog
- c语言程序设计的反思,C语言程序设计教学反思
- web聊天界面html,PC端Web聊天界面+代码分享(HTML+CSS)
- android lottie大小,android-Lottie动画填充
- NUVOTON新唐单片机使用总结
- LabVIEW 编程更改波形图Plots是否可见
- Java面试题!mysql安装教程图解
- android网络权限动态,Android权限详解(含6.0动态申请)
- YOLO模型train.py文件报错:size mismatch for last_layer0.6.weight: copying a param with shape torch.
- C语言实现将彩色BMP位图转化为二值图
- 项目管理~基于禅道敏捷开发的详细流程图,关键节点及描述,诠释敏捷开发实施细节
- JS身份证号码校验大全史上最全号称公安局安全监测
- C,C++,Python实现兔子生兔子问题
- 第九天 03-破解linux密码
- MOV指令是数据传送指令
热门文章
- java 实现鼠标移动事件
- 怎么判断自己是否适合转行软件测试
- 爬虫网易LOFTER图片(适用于类似网页,如百度贴吧 )
- 科技进步计算机开机速度,笔者教你电脑开机慢怎么办
- java 社会统一信用代码分解,获取登记管理部门代码、机构类别代码、登记管理机关行政区划码、 主体标识码、校验码
- C++最小/最大(min;max;minmax;min_element;max_element;minmax_element)
- 三个表情纪念我的像素画讲座
- 今天收到一封MAIL,是转发了N次转发过来的,标题就叫 FW 听说是真有此事 ,内容如下(我是不信的,至于你怎么
- wps里面如何使用计算机,wps表格中怎么在多行之间每行插一行?
- 塑料粘结硬质铁氧体磁铁的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告