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

 更新时间:2018年03月21日 11:25:51   作者:北门吹雪  
这篇文章主要为大家详细介绍了python如何派生内置不可变类型并修改实例化行为,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了python派生内置不可变类型并修改实例化行为的具体代码,供大家参考,具体内容如下

案例:

  我们想要自定义新类型的元组,对传入的可迭代对象我们只保留其中的int类型并且值大于0的元素,如下:

    [1, -2, 'xxx', 7, [1, 'oo'], 9]  >> (1, 7, 9)

如何实现?

1、自定义一个类,继承tuple类
2、重写__new__,类方法,new方法是对参数进行实例操作,在此之间,对实例参数进行预操作,修改实例化行为(new方法先于init方法)
3、重写new方法,把参数变成生成式,传回本类

#!/usr/bin/python3
 
 
class IntTuple(tuple):
  def __new__(cls, iterable):
    # new方法是init方法之前进行调用的方法
    # 生成一个生成式
    g = (x for x in iterable if isinstance(x, int) and x > 0)
     
    # cls为这个类本身,把参数g交给这个类本身
    return super(IntTuple, cls).__new__(cls, g)
 
  def __init__(self, iterable):
    pass
     
     
if __name__ == "__main__":
  l = [1, -2, 'xxx', 7, [1, 'oo'], 9]
   
  result = IntTuple(l)
  print(result)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • python学习之SpaCy库的高级特性详解

    python学习之SpaCy库的高级特性详解

    在之前的文章中,我们介绍了SpaCy库的一些基本概念和功能,在这篇文章中,我们将深入学习一些更高级的特性,包括词向量、依赖性解析、和自定义组件
    2023-07-07
  • python 实现方阵的对角线遍历示例

    python 实现方阵的对角线遍历示例

    今天小编就为大家分享一篇python 实现方阵的对角线遍历示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 教你如何使用Python开发一个钉钉群应答机器人

    教你如何使用Python开发一个钉钉群应答机器人

    在聊天工具大肆侵入我们生活各个方面的今天,各种消息无时无刻不在侵扰我们的每一寸时间,这种情况下,一个聊天的机器人就很有必要了.今天,我们来学习一下使用 Python 开发一个钉钉的应答机器人,助你「人生苦短,少回消息」,需要的朋友可以参考下
    2021-06-06
  • TensorFlow2基本操作之 张量排序 填充与复制 查找与替换

    TensorFlow2基本操作之 张量排序 填充与复制 查找与替换

    这篇文章主要介绍了TensorFlow2基本操作之 张量排序 填充与复制 查找与替换,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Django框架教程之中间件MiddleWare浅析

    Django框架教程之中间件MiddleWare浅析

    这篇文章主要给大家介绍了关于Django框架教程之中间件MiddleWare的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Django框架具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-12-12
  • Python sklearn转换器估计器和K-近邻算法

    Python sklearn转换器估计器和K-近邻算法

    这篇文章主要介绍了Python sklearn转换器估计器和K-近邻算法,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • Python创建文件夹与文件的快捷方法

    Python创建文件夹与文件的快捷方法

    这篇文章主要给大家介绍了关于Python创建文件夹与文件的快捷方法以及批量创建文件夹的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • django2用iframe标签完成网页内嵌播放b站视频功能

    django2用iframe标签完成网页内嵌播放b站视频功能

    这篇文章主要介绍了django2 用iframe标签完成 网页内嵌播放b站视频功能,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • 漂亮的Django Markdown富文本app插件的实现

    漂亮的Django Markdown富文本app插件的实现

    这篇文章主要介绍了漂亮的Django Markdown富文本app插件的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现

    Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现

    这篇文章主要介绍了Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04

最新评论