且说上回冰墩墩被雪容融的灯笼换熊猫打了个措手不及,心中极为不甘。虽是小伙伴之间无伤大雅的玩笑,但不能总是因为我可爱就一直这么逗我玩吧。遂决心苦练绝技,找回胖面儿。
可__new__方法之狸猫换太子已经是雪容融独步天下的必杀绝技,想要破解,谈何容易?
冰墩墩苦思冥想,把胖脸想的瘦了一圈,还是彷徨无计。跺跺脚,强迫自己冷静下来。俗话说心急吃不了热豆腐,不能急功近利急于求成,火神山不是一天能建成的,再怎么样也要顾及国宝的体面。近在咫尺的冬奥会也顾不上看了,又翻开Python秘籍元类篇,苦苦钻研。
时光飞逝,这一日春意盎然,眼见快要瘦成冰干干的冰墩墩突然大喝一声,豁然开悟,体内元气流转,电脑感应到浩然之气,人工智能有了自我意识,写下了如下武功秘籍。

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

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


果然可以,冰墩墩昂首挺胸的滑了出来。
可是这样雪容融的成名绝技就无从施展,难免打草惊蛇,起不到一鸣惊人的效果。冰墩墩如此一个追求完美的熊猫,为了这完美一击耗尽心力,如何能接受这一点小残缺。
再次翻开Python秘籍元类篇,全身元气生生不息,递归运行到了宇宙深处,一丝宇宙本源的奥妙之气悄然流入。冰墩墩淡然一笑,刹那之间,天地同辉。


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

果然如此,但是限制冰墩墩__new__方法的同时,__init__方法也无法执行,冰墩墩出不来了。
这可如何是好?冰墩墩双眉微皱,口中念念有词,可爱亲切之中不失典雅端庄,国宝风范尽显。它精准定义到__calling__方法,看看里面的self到底是什么?

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



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