嗨 我创建了一个对象列表。每个对象都包含一个Set。我想更新列表中所有对象的集合内容。我写来完成这个过程的代码将元素添加到集合中,将元素添加到包含此集合的对象的所有实例
class Player:
name = ""
cardsInHand = set()
hasBid = False
def __init__(self, name):
self.name = name
class CardDeck:
deck = []
def __init__(self):
for i in range(39) :
if i%10>0 and i%10<9 :
self.deck.append(i)
def dealCards(self,player):
cardIndex = 0
for tempPlayer in player:
for j in range(4): # since want to add four elements at a time
tempPlayer.cardsInHand.add(self.deck.pop(cardIndex))
cardIndex = cardIndex +1
的主要方法,我呼吁上述类别下面的代码
players = []
players.append(Player("Player0"))
players.append(Player("Player1"))
players.append(Player("Player2"))
players.append(Player("Player3"))
cards.dealCards(players)
的问题是,dealCards方法添加元素,所有的组的物体。而不是每个对象集合中的4个元素,我最终在每个对象的集合中都有相同的16个元素? 我是新来的python,我做错了什么?
这个工作!。猜猜我必须更多地关注课程属性。我认为这与java中类的变量以及构造函数中的变量相同,只需要初始化它们即可。 – nesta13 2011-04-17 14:28:40
纠正我,如果我错了,类属性的东西类似于全局变量? – nesta13 2011-04-17 14:29:20
如果课程是全球性的,那么是的。 – 2011-04-17 14:37:51