码迷,mamicode.com
首页 > 其他好文 > 详细

魔法方法

时间:2019-03-25 23:20:08      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:code   返回   垃圾回收机制   方法   init   elf   语法   删除对象   __new__   

  1、魔法方法总是被双下划线包围,并且总能在适当的时候被调用。

     例如__init__,一个类中需不需要__init__取决于“需求”;在实例化对象时,默认调用__init__方法;并且,不要试图在__init__方法中返回任何值,__init__只能返回None,否则会报错。

   __new__方法,一个类在实例化对象时,第一个调用的方法是__new__(而不是__init__),语法__new__(cls[,...]),需要用到__new__方法的时候,当继承一个不可变类型,并且需要修改的时候。技术图片

  __del(self)__,当对象将要被销毁的时候,__del__方法会自动调用。注意:垃圾回收机制,在没有任何变量取引用对象时,才会调用___del__去删除对象,而不是调用 del 删除对象时调用 __init__方法。

 1 >>> class C:
 2     def __init__(self):
 3         print("我是__init__方法,我被调用了")
 4     def __del__(self):
 5         print(我是__del__方法,我被调用了)
 6 
10 >>> c1 = C()
11 我是__init__方法,我被调用了
12 >>> c2 = c1
13 >>> c3 = c2
14 >>> del c1
15 >>> del c3
16 >>> del c2
17 我是__del__方法,我被调用了

 

魔法方法

标签:code   返回   垃圾回收机制   方法   init   elf   语法   删除对象   __new__   

原文地址:https://www.cnblogs.com/Chris-01/p/10597302.html

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