通过属性检查类的重复实例

时间:2019-03-22 20:35:32

标签: python oop equality

我正在编写一个可以创建扑克手的引擎,即使我从多个牌组中抽奖,我希望每只手只包含唯一的纸牌

我的问题是,这段代码

for z in range(dr):
    if self.cards[-1] not in drawcards:
        drawcards[z] = self.cards.pop()

不会将具有x且值为y的卡注册为与另一张具有x且值为y的卡相同

这是我的卡类:

class Card:
    """A class containing the value and suit for each card"""
    def __init__ (self, value, suit):
        self.value = value
        self.suit = suit
        self.vname = value_names[value]
        self.sname = suit_names[suit]

    def __str__(self):
        #Irrelevant

    def __repr__(self):
        #Irrelevant

如何使我的程序将具有x且值y的卡a的程序注册为与具有x且值y的卡b的程序相同?

编辑: 对于将来{@ {1}}之外的人来说,

__eq__

对于for循环中指定的相等性是必需的

1 个答案:

答案 0 :(得分:1)

您需要在课程上定义<!-- <li><a href="https://"></a></li> --> <span> <ul id="buttons"> <li>Programming</li> <li><a href="https://codeforces.com">Codeforces</a></li> <li><a href="https://vnoi.info">VNOI</a></li> <li><a href="https://vnoi.info/wiki/Home">VNOI Wiki</a></li> <li><a href="https://docs.google.com/spreadsheets/d/1xSPwkmXcGotPTO4hrbBRwyxngxgOEXpJCCRWJEq04BI/edit#gid=0">Tài liệu lập trình</a></li> <li><a href="https://www.mediafire.com/folder/9jm64z3or98au/C_C%2B%2B">C C++</a></li> <li><a href="https://www.youtube.com/watch?v=9kohr6pMwag&list=PL33lvabfss1wUj15ea6W0A-TtDOrWWSRK">C# Kteam</a></li> <li><a href="https://cspcope.tk/Problem"></a></li> </ul> </span> <span> <ul id="buttons"> <li>Minecraft</li> <li><a href="https://minecraft.tools/en/">Minecraft Tools</a></li> <li><a class="hypixel" href="https://hypixel.net">Hypixel</a></li> <li><a href="https://minecraft.net">Official Minecraft Site</a></li> <li><a href="https://aternos.org/server/">MCPC 2</a></li> <li><a href=""></a></li> <li><a href=""></a></li> </ul> </span> <span> <ul id="buttons"> <li>Phim và giải trí</li> <li><a href="https://www.fshare.vn/folder/ICWBG4Y927K1#!#94u203z203r2t2e47413z2e4u25423">Phim Việt</a></li> </ul> </span> <span></span>来处理比较。这是docs。您可能还希望实现__eq__。文档对此进行了更多讨论。

__hash__