子类 Python 列表以验证新项目

2023-12-13

我想要一个 python 列表,它在外部将自身表示为其内部列表项的平均值,但在其他方面则表现为列表。它应该提高一个TypeError如果添加的项目无法转换为浮点数。

我坚持的部分是提高TypeError。对于通过任何列表方法添加的无效项目,应该引发它,例如.append, .extend, +=、按切片设置等

有没有办法拦截添加到列表中的新项目并验证它们?

我尝试重新验证整个列表__getattribute__,但是当它被调用时,我只能访问列表的旧版本,而且它甚至不会被调用初始化,像这样的运算符+=,或者像这样的切片mylist[0] = 5.

有任何想法吗?


继承自可变序列并实现它所需的方法以及任何其他超出序列范围的方法——比如此处的运算符。这将允许您更改类似列表功能的运算符操作,同时自动生成迭代器和包含功能。

如果你想检查切片顺便说一句你需要做isinstance(key, slice)在你的__getitem__(和/或__setitem__) 方法。请注意,像 myList[0] 这样的单个索引不是切片请求,而是单个索引,而 myList[:0] 是实际的切片请求。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

子类 Python 列表以验证新项目 的相关文章

随机推荐

  • Excel 2007 中数值的可视化与底层 xml 文件不一致

    我试图从 Excel 外部读取 Excel 2007 文件 xlsx 但发现了无法解释的不一致之处 如果您在单元格中输入值 19 99 然后查看基础 Xml 文档 它实际上存储为 19 989999999999998 这不是执行此操作的唯一
  • Log4j 滚动策略和 MaxbackupIndex

    我使用下面的代码每分钟滚动日志 它工作得很好 log4j appender AllFlows org apache log4j rolling RollingFileAppender log4j appender AllFlows roll
  • 如何使用 Bison 解析 C 字符串

    Closed 这个问题需要细节或清晰度 目前不接受答案 我的 C 文件中有一个字符串 如下所示 char test print x 我想用我编写的 Bison 解析器来解析它 是否可以 Bison 解析器根本不读取输入 他们只是通过重复调用
  • 如何迭代priority_queue?

    我可以遍历一个标准吗priority queue或标准queue在 C 中带有迭代器 比如vector 我不想使用 pop 因为它会导致我的队列出队 谢谢你的帮助 priority queue不允许迭代所有成员 大概是因为很容易使队列的优先
  • 如何通过 _blank 在新窗口中打开链接并在后台打开?

    对于正常链接 a href xxx target blank 链接将在新窗口 或选项卡 中打开 我想知道是否有办法在后台打开它 并保持当前窗口仍然处于活动状态 您先请open新窗口 我们称之为newWindow 做这个 newWindow
  • 如何从{$$state:Object}获取数据?

    我尝试使用工厂从数据库中获取数据 我有一个问题 因为我不知道如何从工厂返回的对象中获取数据 这是我使用 console log 函数时收到的信息 gt d state Object state Object status 1 value A
  • 获取并非每天发生的事件的每日计数

    我有一个customer当客户注册时会在其中插入新行的表 Problem 我想知道给定日期范围内每天的注册总数 例如 查找2015 07 01到2015 07 10每天的注册总数 顾客表样本数据 显示相关列 customerid usern
  • amazon-s3 中的 Errno::ENOENT (没有此类文件或目录)

    我有使用 amazon s3 将图像发布到存储桶部署到 heroku 的应用程序 这工作得很好 但是当获取相同的图像时会出现错误 Errno ENOENT No such file or directory showing path s3
  • 为 CUDA 内核调用设置 Visual Studio Intellisense

    我刚刚开始 CUDA 编程 进展非常顺利 我的 GPU 被识别了等等 我已经使用这里非常有用的指南在 Visual Studio 中部分设置了 Intellisense http www ademiller com blogs tech 2
  • 如何将 C++ 中的 QStringList 显示到 QML ListView

    所以我是 Qt 的新手 我正在努力提高我的 C 技能 所以我决定启动一个项目 在其中我可以使用文本字段搜索 QStringList 中的项目 我使搜索功能正常工作 并且能够将搜索结果移至另一个QStringList 我可以使用它在声明为 公
  • 我如何覆盖核心 Symfony2 类?

    我想重写核心 Symfony2 类 具体来说 我想覆盖供应商 symfony symfony src Symfony Bundle FrameworkBundle Template TemplateReference php Templat
  • 如何在Boost Spirit解析器中打印符号表匹配的变量?

    我是使用初学者boost spirit 假设我有以下代码来解析带有变量的简单算术表达式 include
  • 使用 sed 插入换行符 (\n)

    我正在尝试将一些列表清理到格式正确的 CSV 文件中以进行数据库导入 我的起始文件看起来像这样 每个 行 应该跨越多行 如下所示 Mr John Doe Exclusively Stuff 186 Caravelle Drive Ponte
  • context.filter 在 safari 上不起作用

    我正在使用 React 和 Safari 构建一个绘图应用程序 context filter无法正常工作 下面是在 chrome 和 firefox 上渲染的图片以及在 safari 上渲染的图片 对于 Safari 来说还有其他选择吗 S
  • 使用PCA选择特征

    我正在做无监督分类 为此 我有 8 个特征 绿色方差 绿色标准差 红色平均值 红色方差 红色标准差 色调平均值 色调方差 色调标准差 用于分类每个图像 我想使用 PCA 选择 3 个最重要的特征 我编写了以下代码用于特征选择 其中特征尺寸为
  • Google Fonts 字体无法加载

    我正在尝试将 PT Sans 添加到时事通讯中 但由于某种原因它没有加载我已经复制了几乎所有代码 但它不起作用 我将非常感谢任何可以提供帮助的人 这是 CSS 代码 h1 h2 h3 font family PT Sans sans ser
  • 可执行目标文件和虚拟内存

    我是 Linux 和虚拟内存的初学者 仍在努力理解虚拟内存和可执行对象文件之间的关系 假设我们有一个可执行目标文件a out存储在硬盘驱动器磁盘上 假设最初 a out 有一个 data具有值为 2018 的全局变量的部分 当加载程序运行时
  • JavaScript:通过 ID 设置嵌套对象值

    我想知道在 JavaScript 中更新多级对象集合成员的最佳方法是什么 这是我的收藏的简化版本 this Steps id 1 text test childSteps id 2 text test id 3 text test id 4
  • Bundle 正在等待名称空间处理程序 [http://camel.apache.org/schema/blueprint]

    我编写了一个简单的 apache Camel 项目 最终将部署在 FUSE 容器中 现在 我只是想让基本的单元测试正常工作 我正在使用这个例子here作为起点 我已经编写了有效的单元测试 但是当我包含蓝图文件时 我在测试输出中得到以下条目
  • 子类 Python 列表以验证新项目

    我想要一个 python 列表 它在外部将自身表示为其内部列表项的平均值 但在其他方面则表现为列表 它应该提高一个TypeError如果添加的项目无法转换为浮点数 我坚持的部分是提高TypeError 对于通过任何列表方法添加的无效项目 应