Python 如何保持类的一致性?

Python 如何保持类的一致性?,python,class,inheritance,generator,Python,Class,Inheritance,Generator,我正在尝试用python编写一个基本的21点游戏。但是当我创建一个类对象时 e、 g Card.Card_1或Deck.Deck_1它们是类对象,但当我尝试将它们转移到另一个类(例如,将52个卡对象转移到一个Deck对象)时,它们似乎会还原为列表,从而否定我的实例方法。谁能告诉我我错过了什么 Card_Class.py value = ["A", "2", "3", "4", "5", "

我正在尝试用python编写一个基本的21点游戏。但是当我创建一个类对象时 e、 g Card.Card_1或Deck.Deck_1它们是类对象,但当我尝试将它们转移到另一个类(例如,将52个卡对象转移到一个Deck对象)时,它们似乎会还原为列表,从而否定我的实例方法。谁能告诉我我错过了什么

Card_Class.py

value = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"]
suit = ["Hearts", "Diamonds", "Clubs", "Spades"]

class Card():
    def __init__(self, suit, value):
        self.suit = suit
        self.value = value
        self.score = 0
甲板_类.py

import Card_Class
import random 

class Deck():
    def __init__(self):
        self.deck = []

    def populate_deck(self):
        for s in Card_Class.suit :
            for v in Card_Class.value:
                self.deck.append([s, v])
        return self.deck


    def get_card(self):
        return self.deck[0]

get_card方法返回一个列表类型,尽管我的self.deck=[],因此它已从一个deck对象更改为一个list对象?

我在
populate_deck
方法中看到的只是对deck列表的一个附加,它添加了一个列表:

self.deck.append([s, v])
该行清楚地附加了一个包含当前诉讼和价值的列表。类型没有变化,只添加了一些列表。所以你的
self.deck
看起来像

[["Hearts", "A"], ["Hearts", "2"], ["Hearts", "3"]]
等等

您可能打算使用其构造函数添加一个新的卡对象

self.deck.append(Card_Class.Card(s,v))

当你们在牌堆中储存套装和价值时,你们应该在牌堆中添加卡片。因此,使用具有正确s和v值的Card()调用Card构造函数,如下所示:

def populate_deck(self):
    for s in Card_Class.suit :
        for v in Card_Class.value:
            self.deck.append(Card_Class.Card(s, v))
    return self.deck