鱼C论坛

 找回密码
 立即注册
查看: 751|回复: 2

魔法方法 ———求解

[复制链接]
发表于 2018-5-23 10:30:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
>>> class c:
        def __init__ (self):
                print (1)
        def __new__ (self):
                print (2)
        def __del__ (self):
                print (3)

               
>>> c1 = c()
2
>>> c2 = c1
>>> c3 = c2
>>> del c3
>>> del c2
>>> del c1
>>>
>>>

想问一下这个情况下为啥没有调用 del ?
怎么能让他调用?
我知道去掉 :def __new__ (self):   可以
其他方式了?刚开始学魔法方法,不太懂
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-5-23 11:13:14 | 显示全部楼层
new方法没有返回一个对象,实例化对象其实并没有成功,所以里面的魔法方法都没有被调用
你没看到init也没被调用吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-23 13:23:38 | 显示全部楼层
BngThea 发表于 2018-5-23 11:13
new方法没有返回一个对象,实例化对象其实并没有成功,所以里面的魔法方法都没有被调用
你没看到init也没 ...

new方法不是可以优先init方法被调用吗?是这样吧?那如果new方法被重写,有返回值是不是del方法就会被调用了?
我给试试先
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-12-30 09:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表