在类中“in”重新声明方法

2024-01-02

我正在创建一个抽象数据类型,它创建一个双向链表(不确定它是正确的翻译)。在其中,我创建了一个方法 __len__ 来以正确的方式计算它的长度,一个方法 __repr__ 来正确表示它,但我现在不想创建一个方法,当用户做出类似的事情时:

if foo in liste_adt

将返回正确的答案,但我不知道该使用什么,因为 __in__ 不起作用。

谢谢你,


您在寻找吗__contains__ http://docs.python.org/py3k/reference/datamodel.html#object.__contains__?

object.__contains__(self, item)

要求实行会员资格测试运营商。应该返回 true 如果item is in self,否则为假。对于映射对象,应考虑映射的键而不是值或键项对。

对于没有定义的对象__contains__() http://docs.python.org/py3k/reference/datamodel.html#object.__contains__,成员资格测试首先尝试通过迭代__iter__() http://docs.python.org/py3k/reference/datamodel.html#object.__iter__,然后旧的序列迭代协议通过__getitem__() http://docs.python.org/py3k/reference/datamodel.html#object.__getitem__, see 语言参考中的这一部分 http://docs.python.org/py3k/reference/expressions.html#membership-test-details.

快速示例:

>>> class Bar:
...     def __init__(self, iterable):
...         self.list = list(iterable)
...     def __contains__(self, item):
...         return item in self.list
>>>     
>>> b = Bar([1,2,3])
>>> b.list
[1, 2, 3]
>>> 4 in b
False
>>> 2 in b
True

Note:通常,当您有此类疑问时,可以在以下位置找到参考资料:数据模型 http://docs.python.org/py3k/reference/datamodel.html#data-model的部分Python 语言参考 http://docs.python.org/py3k/reference/index.html.

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

在类中“in”重新声明方法 的相关文章

随机推荐

  • 在 scikit-learn 中将 MDS 的共现矩阵转换为相异矩阵

    我有一个单词共现矩阵 如下所示 我想使用 MDS 来减少维度并绘制它 sklearn中有一个函数model MDS n components 2 dissimilarity precomputed random state 1 并应用该模型
  • 正确的访问小时数

    我在 Access 2010 数据库中有两列 其中包含一些计算字段 time from time until calculated field time until time from 10 45 15 00 4 15 13 15 16 0
  • 如何在 Linux Ubuntu 16 上安装 luasql?

    感谢 StackOverflow 社区的帮助 我能够在我的计算机上正确安装 luasql运行 Linux CentOS 7 的计算机 https stackoverflow com questions 43149280 how to ins
  • C++ 程序在两个 IDE 中返回不同的结果

    我写以下内容c 程序在CodeBlocks 结果是 9183 我再次将其写入Eclipse运行后返回9220 两者都使用MinGW 正确的结果是9183 这段代码有什么问题 谢谢 源代码 include
  • 如何在 hadoop 2.5.2 上启动并检查作业历史记录

    在每个应用程序的mapreduce webconsole中都有一个指向xx 19888 jobhistory 的跟踪ui链接 但是如何在19888上启动服务 我已经启动了4个服务 yarn resource manager yarn nod
  • 如何告诉闭包编译器保留对象的属性

    我有一个这样声明的对象 my namespace FEATURES FIRST FEATURE first feature SECOND FEATURE second feature I use my namespace my object
  • 如何读取Firebase实时数据库中的子节点

    我有一个 Firebase 实时数据库 我想写入它 这很简单 但我已经向数据库添加了不止一棵树 并且想知道如何写入第二棵树 现在我只能写入第一棵树 Image for better understanding 例如 我如何写入颜色信息 注意
  • 如何在 Silverlight 中赋予文本框焦点?

    在我的 Silverlight 应用程序中 我似乎无法将焦点集中到 TextBox 控件上 根据各种帖子的推荐 我已将 IsTabStop 属性设置为 True 并使用 TextBox Focus 尽管 UserControl Loaded
  • Zend_Tool 删除控制器/操作

    我用 Zend Tool 制作了一个控制器 但现在我想删除该控制器 我知道我可以删除该文件 但我想知道是否有办法使用 Zend Tool 来执行此操作 所以我不需要自己编辑 zfproject xml Thanks 您必须手动删除它 此功能
  • 一个进程的传出连接数限制(.Net)

    当我在一个线程中下载一个文件时 需要 0 1 秒 但是 当我以 100 个线程下载同一个文件时 每次下载需要 10 秒 源代码 private static int threadsCount private static string ur
  • 使用哪个合并运算符来侦听单个源而不是第二个流源

    所以我知道这个问题可能看起来很简单 但事实并非那么简单 我尝试过的所有运算符 例如combineLatest concat and switchMap导致差异问题 所以这是挑战 var campaignSelected this store
  • 使用 RCurl getURL 函数访问 ASP 网页时出现“对象已移动”错误

    我正在尝试使用getURL的函数RCurl打包以便访问ASP网页为 my url lt http www my site org my site main asp ID 11 REFID 33 webpage lt getURL my ur
  • 将 Django 与 Ajax 库集成的“最佳”方式

    显然 课程的马匹 但是将 javascript 库与 Django 应用程序集成的一些好方法是什么 我计划使用 jQuery 主要是因为它看起来很流行并且看起来很强大 但我愿意接受其他建议 是否有非常有用或必不可少的 python 端库 或
  • ODP.NET 的 Oracle 数据库更改通知不起作用

    我是 Oracle DB 的新手 正在尝试启用数据库更改通知 private void RegisterNotification const string connstring Data Source ORA DB User Id USER
  • 更改 jQuery mobile 1.4.0 中单选按钮的样式

    我的 jQuery 移动应用程序中有以下单选按钮 我需要将它们设置为下图中的单选按钮 我已经尝试了以下CSS 但它没有给我相同的结果 请帮助我 Html div div style height 63px div div div div
  • GCC - 将 int 分配给 char 时不应该发出警告吗?

    我最近在我的笔记本电脑上设置了 MinGW MSYS 环境 以检查 Netbeans C C 支持的情况 一切似乎都工作正常 但是 在我的测试过程中 我注意到 GCC 和 Microsoft 的 cl exe 编译器之间的差异 这是一个示例
  • 是否可以设置没有cookie的nginx?

    我看到 尤其是在德国 越来越多的网站要求获得设置 cookie 的许可 我当前的项目不需要应用程序级别的 cookie 所以我想知道我是否不应该完全放弃饼干 我的问题 是否可以完全使用 nginx 设置静态网站而不使用 cookie 如果是
  • 如何为 html 或 css 中的文本创建自定义下划线或突出显示?

    I m trying to figure out how to create a custom background effect for text In other words how can I make something like
  • SqlBulkCopy 在单个记录上?

    我的软件可以部署在两种不同的配置中 一种是我在一天中偶尔收到单个数据点的滴流 另一种是我在一天结束时获得所有数据的转储 对于日终转储 显然 我将使用SqlBulkCopy 具有可配置批量大小的命令 但是 为了简单起见 我想通过将批量大小设置
  • 在类中“in”重新声明方法

    我正在创建一个抽象数据类型 它创建一个双向链表 不确定它是正确的翻译 在其中 我创建了一个方法 len 来以正确的方式计算它的长度 一个方法 repr 来正确表示它 但我现在不想创建一个方法 当用户做出类似的事情时 if foo in li