Python 类分布错误

Python 类分布错误,python,python-3.x,Python,Python 3.x,下面是课堂: class Player: #variables hand = [] name = 'Test Player' #functions def take(self, card): #allows player to take a card self.hand.append(card) def __str__(self): msg = self.name if len(self.hand)

下面是课堂:

class Player:
    #variables
    hand = []
    name = 'Test Player'
    #functions
    def take(self, card): #allows player to take a card
        self.hand.append(card)
    def __str__(self):
        msg = self.name
        if len(self.hand) > 0:
            msg = msg + "\nIn hand:"
            for card in self.hand:
                msg = msg + ' ' + card.short_name
        return msg
以下是函数:

def deal(players):
    deck = Deck.generate_deck()
    if len(players) <= 4:
        for player in players:
            for cards in range (0, 7):
                card = random.choice(deck)
                player.take(card)
                deck.remove(card)
    else:
        for player in players:
            for cards in range (0, 5):
                card = random.choice(deck)
                player.take(card)
                deck.remove(card)
    return deck

p、 之后的数字在我的测试代码中只是一个小的调试内容,没有任何影响。

你的问题是你的
手=[]
列表被附加到类中;它是一个类属性,在实例之间共享

\uuuu init\uuuu
方法中为每个玩家创建一个新列表:

class Player:
    def __init__(self):
        self.hand = []

你的问题是你的
hand=[]
列表被附加到了类中;它是一个类属性,在实例之间共享

\uuuu init\uuuu
方法中为每个玩家创建一个新列表:

class Player:
    def __init__(self):
        self.hand = []
可能的重复可能的重复