1
我遇到了列表中的項目成員資格問題,我無法理解。雖然檢查是列表中的某個對象實例(使用簡單的「列表中的項目」),但即使實例在列表中,它也會返回False。然後我注意到相同的指針沒有相同的Id。檢查python列表問題的成員
我必須使用一些特殊的方法或什麼?請有人幫我比較實例平等嗎?
注意:如果它很重要,那麼PySide就會發生這種情況。
我遇到了列表中的項目成員資格問題,我無法理解。雖然檢查是列表中的某個對象實例(使用簡單的「列表中的項目」),但即使實例在列表中,它也會返回False。然後我注意到相同的指針沒有相同的Id。檢查python列表問題的成員
我必須使用一些特殊的方法或什麼?請有人幫我比較實例平等嗎?
注意:如果它很重要,那麼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