python析构函数与构造函数的用法讲解

 

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

登录后复制

  

构造函数

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

 

析构函数

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

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

立即学习“Python免费学习笔记(深入)”;

  如果要显式的调用析构函数,可以使用del关键字: del obj 垃圾回收机制  

s = '123'print('del...running')del s

登录后复制

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

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

构造函数:

用于初始化类的内容部状态,Python提供的构造函数式 __init__();

也就是当该类被实例化的时候就会执行该函数。那么我们就可以把要先初始化的属性放到这个函数里面。如下程序:

   e9944080_12f9734b4c8g215.jpg 

__init__()方法是可选的,如果不提供,Python 会给出默认的__init__方法

一般数据的获取需要定义的get和set方法

以上就是python析构函数与构造函数的用法讲解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2268094.html

(0)
上一篇 2025年2月27日 10:31:50
下一篇 2025年2月25日 02:26:34

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • python使用join的两个实例分享

    python使用join的两个实例分享 a1 = {: , : , : , : = open(,,encoding= key === + 登录后复制 如果你想要合并(列表,元组,字典,文件,集合或生成器等)的字符串是一个序列或者iterab…

    编程技术 2025年2月27日
    200
  • 有哪些优秀的计算机语言

    计算机编程语言的选择取决于项目需求和开发人员技能。杰出的编程语言包括:Python(多用途)、C++(速度和效率)、Java(平台无关)、JavaScript(Web 开发)、C#(.NET 框架)、Swift(苹果应用程序开发)、Go(云…

    2025年2月27日
    200
  • python–条件语句与循环语句

    今天我们看看条件语句与循环语句。 预习: 1、使用while循环输出1 2 3 4 5 6 8 9 10 2、求1-100的所有数的和 3、输出 1-100 内的所有奇数 立即学习“Python免费学习笔记(深入)”; 4、输出 1-100…

    2025年2月27日
    200
  • python之变量的学习介绍

    变量 变量是将储存的值保存在内存中。当声明一个变量的时候会在内存中开辟一个储存内容的位置。 基于变量的数据类型,解释器分配内存空间并决定储存的内容。因此我们可以通过变量分配不同的数据类型,可以在变量中储存数据类型为整数,小数,字符等 在py…

    编程技术 2025年2月27日
    200
  • 专用的计算机语言有哪些

    专用计算机语言是专门针对特定领域或任务设计的编程语言,其优点包括简化开发、提高效率和准确性,缺点则是有时学习曲线更陡峭,且可移植性较低。 专用的计算机语言 专用的计算机语言是针对特定领域或任务而设计的编程语言。它们提供特定于该领域的特性、语…

    2025年2月27日
    200
  • 在Windows上如何共存多版本Python

    1、如果是windows,建议在安装路径下的pip分别改成pip2和pip3进行区分2、如果是linux, 也是同样的办法,将pip的软链接删除,增加pip2和pip3的软件进行区分。pip会自动安装对应的包 目前国内网站经常会让大家把其中…

    编程技术 2025年2月27日
    200
  • 学计算机语言题库有哪些

    在线题库:LeetCode、HackerRank、CodinGame、CoderByte、CodeChef。书籍和教材:Cracking the Coding Interview、Elements of Programming Interv…

    2025年2月27日
    200
  • 初中计算机语言有哪些

    初中阶段学习的计算机语言有Scratch、Python、Java、C/C++、HTML/CSS。Scratch适合初学者,Python和Java适合基础编程和算法学习,C/C++和HTML/CSS适用于更高级的应用程序开发。不同语言各有优缺…

    2025年2月27日
    200
  • python的系统学习实例

    今天开始进行python的系统学习开始写随笔希望对看到的人有所帮助。 预习: 1、安装python2和python3,实现多版本共存 2、用python语言编写代码,要求输入用户信息:姓名,年纪,家庭住址,然后打印 3、老男孩的年纪为63,…

    2025年2月27日 编程技术
    200
  • python生成器generator介绍

      在跟着廖雪峰的博客学习python,看到生成器这一章节的时候,首先提到了generator 、yield,然后在搜索资料的时候,又查到了协程这一概念,这篇文章总结一下这几个概念.   generator  从字面上理解,就是生成器,它的…

    编程技术 2025年2月27日
    100

发表回复

登录后才能评论