我正在用 Python 创建一个程序,它通过创建一个自定义 Card 类的随机实例来绘制“卡片”(即,它随机化花色和等级以创建一张新卡片)。
我遇到的问题是可能会生成重复的牌,有时是在同一手牌中。是否有用于在整个本地环境中搜索类的相同实例(每个属性具有相同值)的内置或标准函数?
如果不是,我已经使用 __eq__ 定义了对象相等性,表示花色和等级都相等。我如何确定某个类是否存在于 local() 字典(或其列表之一)中,然后提取这些实例以确定是否相等?
请您参考如下方法:
你的做法全错了。不要试图在宇宙中搜索已经生成的卡片,而是制作一副卡片并从中抽取卡片。
import random
deck = [Card(suit, number) for suit in suits for number in range(1, 14)]
random.shuffle(deck)
# When you need to draw a card
card = deck.pop()
