__new__

__new__方法是用来创建对象,__new__方法需要有一个返回值,这个返回值表示创建出来的对象的引用

__init__

__init__方法在类的一个对象被建立时 ,马上执行。__init__方法在__new__方法执行后再执行.

__del__

它在对象消逝的时候被调用 ,当类被删除的时候,程序会自动执行__del__当中的代码(与__init__方法相反)

示例:

>>> class c:
... def __new__(cls):
... print('created')
... return object.__new__(cls)
... def __init__(self):
... print('initialized')
... def __del__(self):
... print('deleted')
... >>> c1=c()
created
initialized
>>> c2=c1
>>> c3=c1
>>> del c1
>>> del c2
>>> del c3
deleted

  

当对象被第一次创建时,会分别运行new&init方法,打印出相关内容。

继续创建一个对象,并将第一个对象赋值给它时,不会再次运行new&init

后续删除各个对象,直到删除到最后一个对象之后,才真正删除类c,调用del方法

python中__init__ ,__del__ &__new__的更多相关文章

  1. python中__init__()、__new__()、__call__()、__del__()几个魔法方法的用法

    关于__new__()的用法参考: http://www.myhack58.com/Article/68/2014/48183.htm 正文: 一.__new__()的用法: __new__()是在新 ...

  2. python中__init__()、__new__()、__call__()、__del__()用法

    关于__new__()的用法参考: http://www.myhack58.com/Article/68/2014/48183.htm 正文: 一.__new__()的用法: __new__()是在新 ...

  3. Python中__init__和__new__的区别详解

    __init__ 方法是什么? 使用Python写过面向对象的代码的同学,可能对 __init__ 方法已经非常熟悉了,__init__ 方法通常用在初始化一个类实例的时候.例如: # -*- cod ...

  4. python中__init__和__new__的区别

    参考:https://my.oschina.net/liuyuantao/blog/747164 python中__metaclass的详解 参考:https://www.cnblogs.com/ia ...

  5. python中__init__.py文件的作用

    问题 在执行models.py时,报ImportError:No module named transwarp.db的错误,但明明transwarp下就有db.py文件,路径也没有错误.真是想不通.后 ...

  6. Python中__init__方法介绍

    本文介绍Python中__init__方法的意义.         __init__方法在类的一个对象被建立时,马上运行.这个方法可以用来对你的对象做一些你希望的 初始化 .注意,这个名称的开始和结尾 ...

  7. Python中__init__.py文件的作用详解

    转自http://www.jb51.net/article/92863.htm Python中__init__.py文件的作用详解 http://www.jb51.net/article/86580. ...

  8. 转载:【学习之家】Python中__init__.py文件的作用

    Python中__init__.py文件的作用详解 Python中__init__.py文件的作用详解 来源:学习之家 作者:xuexi110 人气:357 发布时间:2016-09-29 摘要:__ ...

  9. Python的程序结构[1] -> 方法/Method[2] -> 魔术方法 __init__ / __del__ / __new__

    魔术方法 / Magic Method 魔法方法就是可以给你的类增加魔力的特殊方法(实质应称为特殊方法,魔术方法在JavaScript中有所体现,对象具有不透明特性,而且无法在自定义对象中模拟这些行为 ...

  10. python的__init__和__new__

    本文所有实例代码在python3.7下 一.__new__和__init__区别 1.__new__先于__init__执行;__new__是相当于其他OOP语言的构造方法,负责创建实例:之后,__i ...

随机推荐

  1. Spark MLlib 机器学习

    本章导读 机器学习(machine learning, ML)是一门涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多领域的交叉学科.ML专注于研究计算机模拟或实现人类的学习行为,以获取新知识.新 ...

  2. request 和 response 对象

    Request 对象 request 对象表示 HTTP 请求,包含了请求查询字符串,参数,内容,HTTP 头部等属性 常见属性 /* req.app:当callback为外部文件时,用req.app ...

  3. Windows 操作系统

    Microsoft Windows,是美国微软公司研发的一套操作系统,它问世于1985年,起初仅仅是Microsoft-DOS模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家 ...

  4. Immunity Debugger学习

    1.Immunity Debugger简介 Immunity Debugger软件专门用于加速漏洞利用程序的开发,辅助漏洞挖掘以及恶意软件分析.它具备一个完整的图形用户界面,同时还配备了迄今为止最为强 ...

  5. 【noip 2015】提高组

    先扔一份写的超级详细的题解.   -Day1-    -Day2- (感觉自己并没有什么写题解的必要啊……做点补充好了,顺便扔代码 D1T1.神奇的幻方 题目链接 #include<cstdio ...

  6. luogu P3721 [AH2017/HNOI2017]单旋

    传送门 \(Spaly:\)??? 考虑在暴力模拟的基础上优化 如果要插入一个数,那么根据二叉查找树的性质,这个点一定插在他的前驱的右子树或者是后继的左子树,可以利用set维护当前树里面的数,方便查找 ...

  7. Vi编辑器中全局替换

    1 例如下图 %s/hello/java/g #(等同于 :g/hello/s//java/g) 替换每一行中所有 hello 为 java 2 操作截图 替换所有的exec-avro-agent-L ...

  8. No compiler is provided in this environment. --Maven build失败

    今天,maven build 失败了, 遇到下面的问题 经过查找,通过这个大佬的blog(  https://blog.csdn.net/lslk9898/article/details/738367 ...

  9. XLMHttpRequest对象的status属性,readyState属性以及onreadystatechange事件

    注:XLMHttpRequest简写为XHR 一.HTTP请求过程 (1)建立TCP链接 (2)web浏览器向web服务器发送请求命令 (3)web浏览器发送请求头信息 (4)web服务器应答 (5) ...

  10. Setup Post-mission Camera

    编辑BP_GameMode 新建Actor命名为BP_SpectatingViewpoint 添加摄像机 将摄像机调整到合适的位置,右键选择 调整到合适的位置,点击这个按钮,退出驾驶模式 摄像机已经移 ...