嗨 我創建了一個對象列表。每個對象都包含一個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