python怎么派生内置不可变类型并修改实例化行为

  介绍

这篇文章给大家分享的是有关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怎么派生内置不可变类型并修改实例化行”为这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

python怎么派生内置不可变类型并修改实例化行为