当前位置: 首页 > 学生园地 > Python元类之冰墩墩凤凰涅槃

Python元类之冰墩墩凤凰涅槃

2023年04月26日 16:44:25 访问量:151

且说上回冰墩墩被雪容融的灯笼换熊猫打了个措手不及,心中极为不甘。虽是小伙伴之间无伤大雅的玩笑,但不能总是因为我可爱就一直这么逗我玩吧。遂决心苦练绝技,找回胖面儿。

可__new__方法之狸猫换太子已经是雪容融独步天下的必杀绝技,想要破解,谈何容易?

冰墩墩苦思冥想,把胖脸想的瘦了一圈,还是彷徨无计。跺跺脚,强迫自己冷静下来。俗话说心急吃不了热豆腐,不能急功近利急于求成,火神山不是一天能建成的,再怎么样也要顾及国宝的体面。近在咫尺的冬奥会也顾不上看了,又翻开Python秘籍元类篇,苦苦钻研。

时光飞逝,这一日春意盎然,眼见快要瘦成冰干干的冰墩墩突然大喝一声,豁然开悟,体内元气流转,电脑感应到浩然之气,人工智能有了自我意识,写下了如下武功秘籍。

冰墩墩洋洋自得,此功法巧夺天地造化,在雪容融魔法尚未发动之前就已李代桃僵。元墩墩的__new__方法最先执行,接着开始__init__方法,两个方法一起产生了冰墩墩类。先于被冰墩墩雪容融控制的冰墩墩的__new__方法,可谓占尽先机。

运行之后,雪容融得意一笑,神采飞扬的跑了出来。冰墩墩眼前一黑,瞬间变成冰干干。仔细分析,原来雪容融的嫁衣神功太过霸道,自己闭关多日,煞费苦心的绕过重重关卡,但最终冰墩墩的__new__方法还是执行了,所以又是给别人做了嫁衣。

既然元墩墩可以产生冰墩墩,那么是否可以去掉冰墩墩的__new__方法,让雪容融无法控制?


果然可以,冰墩墩昂首挺胸的滑了出来。

可是这样雪容融的成名绝技就无从施展,难免打草惊蛇,起不到一鸣惊人的效果。冰墩墩如此一个追求完美的熊猫,为了这完美一击耗尽心力,如何能接受这一点小残缺。

再次翻开Python秘籍元类篇,全身元气生生不息,递归运行到了宇宙深处,一丝宇宙本源的奥妙之气悄然流入。冰墩墩淡然一笑,刹那之间,天地同辉。


bdd是冰墩墩类的实例对象,冰墩墩类又是元墩墩类的实例对象。bdd()方法其实就是调用冰墩墩类的__calling__方法,同理,冰墩墩()就是调用元墩墩的__calling__方法。在此方法中,直接返回对象,就可以阻止冰墩墩中的__new__方法和__init__方法。

果然如此,但是限制冰墩墩__new__方法的同时,__init__方法也无法执行,冰墩墩出不来了。

这可如何是好?冰墩墩双眉微皱,口中念念有词,可爱亲切之中不失典雅端庄,国宝风范尽显。它精准定义到__calling­­__方法,看看里面的self到底是什么?

不出所料,self果然就是冰墩墩本尊,那就可以尝试在__calling__方法里面调用它的__init__方法。


完美,极致的完美,这才符合冰墩墩的国宝性格,雪容融的灯笼换熊猫神功再也没有着力点,无从换起了。

编辑:张冬梅
评论区
发表评论

评论仅供会员表达个人看法,并不表明网校同意其观点或证实其描述
教育部 中国现代教育网 不良信息 垃圾信息 网警110
郑重声明:本站全部内容均由本单位发布,本单位拥有全部运营和管理权,任何非本单位用户禁止注册。本站为教育公益服务站点,禁止将本站内容用于一切商业用途;如有任何内容侵权问题请务必联系本站站长,我们基于国家相关法律规定严格履行【通知—删除】义务。本单位一级域名因备案流程等原因,当前临时借用网校二级域名访问,使用此二级域名与本单位官网权属关系及运营管理权无关。忻州市河曲中学 特此声明。

联系地址:山西省河曲县长城大街西
北京网笑科技有限公司 仅提供技术支持 违法和不良信息举报中心