我错过了什么?它将每个变量存储为同一张卡。在嵌套循环中生成“cards”,我使用注释输出语句验证值是否合法(在将它们附加到列表之前一步),但是当我稍后查看列表时,每个“cards”都是同一张卡-最后一张卡-
def PrintCard(i):
print i.suit,i.value
class CardClass():
value = 0
face = ""
suit = 0
slot = 0
onoff = 0
card = []
decks = 1
x = 1
suits = [0,1,2,3]
values = [2,3,4,5,6,7,8,9,10,10,10,10,11]
n = CardClass()
for d in range(decks):
for s in suits:
n.suit = s
for v in values:
n.value = v
"print s,v, n.suit,n.value"
card.append(n)
for i in range(len(card)):
PrintCard(card[i])
您只创建了一个card对象,并且多次将该对象附加到列表中。每次执行
n.value = v
,都是在修改同一对象的值,覆盖先前的值要获得不同的卡片对象,您需要为每个套装/价值组合创建一个单独的实例,方法是将
n = CardClass()
移动到内部循环中,并仅在该对象上设置套装和价值:相关问题 更多 >
编程相关推荐