gpt4 book ai didi

python - 检查 python 列表中的成员资格问题

转载 作者:太空宇宙 更新时间:2023-11-03 18:58:58 26 4
gpt4 key购买 nike

我遇到了列表中项目成员身份的问题,我无法理解。在检查列表中的某个对象实例时(使用简单的“列表中的项目”),即使该实例在列表中,它也会返回 False 。然后我注意到相同的指针没有相同的 Id。

我必须使用一些特殊的方法吗?任何人都可以帮我比较实例相等性吗?

注意:如果重要的话,所有这些情况都会发生在 PySide 中。

最佳答案

您的对象需要有一个 __eq__ 方法来定义如何比较对象是否相等。

In [18]: class A(object):
...: def __init__(self, n):
...: self.n = n
...:

In [19]: class B(object):
...: def __init__(self, n):
...: self.n = n
...: def __eq__(self, other):
...: return self.n == other
...:

In [20]: a = A(1)

In [21]: b = B(1)

In [22]: a in [A(n) for n in range(10)]
Out[22]: False

In [23]: b in [B(n) for n in range(10)]
Out[23]: True

In [24]: b in [B(n) for n in range(10, 20)]
Out[24]: False

关于python - 检查 python 列表中的成员资格问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16517669/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com