介绍
这篇文章给大家分享的是有关python怎么派生内置不可变类型并修改实例化行为的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
<强>案例:强>
我们想要自定义新类型的元组,对传入的可迭代对象我们只保留其中的int类型并且值大于0的元素,如下:
[1、2 & # 39; xxx # 39;, 7日[1 & # 39;oo # 39;], 9],在比;(1、7、9)
<>强如何实现? 强>
1,自定义一个类,继承tuple类
2,重写__new__、类方法,新的方法是对参数进行实例操作,在此之间,对实例参数进行预操作,修改实例化行为(新方法先于初始化方法)
3,重写新的方法,把参数变成生成式,传回本类
# !/usr/bin/python3 , , class IntTuple(元组): def 才能__new__ (cls, iterable): ,,,#,新的方法是初始化方法之前进行调用的方法 ,,,#,生成一个生成式 ,,,g =, (x for  x 拷贝iterable if isinstance (int x),),以及x 祝辞,0) ,,,, ,,,#,cls为这个类本身,把参数g交给这个类本身 ,,,return 超级(IntTuple, cls) . __new__ (cls, g) , def 才能;__init__(自我,,iterable): ,才能通过 ,,,, ,,,, if __name__ ==,“__main__": l 才能=,(1,,2,,& # 39;xxx # 39;,, 7日,[1,& # 39;oo # 39;],, 9] ,, 时间=result 才能;IntTuple(左) 印刷才能(结果)
感谢各位的阅读!关于“python怎么派生内置不可变类型并修改实例化行”为这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!