Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 这行代码是否正在创建Card类的新实例?_Python_Class - Fatal编程技术网

Python 这行代码是否正在创建Card类的新实例?

Python 这行代码是否正在创建Card类的新实例?,python,class,Python,Class,我想知道下面这行代码在做什么,我想得到帮助,以便在我启动for循环时完全理解上层类中发生的事情 import random suits = ('Hearts', 'Diamonds', 'Spades', 'Clubs') ranks = ('Two', 'Three', 'Four', 'Five', 'Six', 'Seven','Eight','Nine', 'Ten', 'Jack', 'Queen', 'King', 'Ace') values = {

我想知道下面这行代码在做什么,我想得到帮助,以便在我启动for循环时完全理解上层类中发生的事情

    import random

    suits = ('Hearts', 'Diamonds', 'Spades', 'Clubs')
    ranks = ('Two', 'Three', 'Four', 'Five', 'Six', 'Seven','Eight','Nine', 'Ten', 'Jack', 'Queen', 'King', 'Ace')
    values = {'Two':2, 'Three':3, 'Four':4, 'Five':5, 'Six':6, 'Seven':7, 'Eight':8, 'Nine':9, 'Ten':10, 'Jack':10,
             'Queen':10, 'King':10, 'Ace':11}

    playing = True



    class Card():
        def __init__(self,suit,rank):
            self.suit = suit
            self.rank = rank

        def __str__(self):
            return "{} of {}".format(self.rank,self.suit)

    card = Card(suits,ranks)

    class Deck():

        def __init__(self):
            self.deck = []
            for suit in suits:
                for rank in ranks:
                    self.deck.append(Card(suit,rank)) <======= I want to know what is this performing?

        def __str__(self):
            deck_comp = ""
            for card in self.deck:
                deck_comp += "\n" + card.__str__()
            return "The card is" + deck_comp

        def shuffle(self):
            random.shuffle(self.deck)

        def deal(self):
            single_card = self.deck.pop()
            return single_card

    deck = Deck
随机导入
套装=(‘红心’、‘钻石’、‘黑桃’、‘梅花’)
排名=(‘二’、‘三’、‘四’、‘五’、‘六’、‘七’、‘八’、‘九’、‘十’、‘杰克’、‘女王’、‘国王’、‘王牌’)
值={'Two':2,'Three':3,'Four':4,'Five':5,'Six':6,'Seven':7,'Eight':8,'Nine':9,'Ten':10,'Jack':10,
“女王”:10,“国王”:10,“王牌”:11}
玩=真
类别卡():
定义初始(自我、西装、军衔):
西服
self.rank=等级
定义(自我):
返回{}的{}。格式(self.rank,self.suit)
卡片=卡片(套装、等级)
类组():
定义初始化(自):
self.deck=[]
对于套装:
对于等级中的等级:

self.deck.append(Card(suit,rank))您正在将一张卡的实例添加到列表中。这是你应该了解自己,然后问一个更具体的问题。解释它很困难,因为我们不知道你知道多少,而且主题很广泛。相关阅读如下:


Card(suit,rank)
正在创建一个新的
Card
对象,这意味着一张新的卡,并将其附加到
牌组中的卡列表中
您指出的那一行正在创建一个新的
Card
实例,即suit
和rank
rank
。查看上面
类的
初始化
,您可以看到它有这两个属性。这意味着,当你调用对象
deck.deck
,你将有一个52或54长度的列表(取决于你是否包含小丑,从外观上看不是),由
对象组成。如果你调用
deck.deck[3]。suit
你会得到第三张牌的套装,或者
deck.deck[3]。rank
会给你排名。@我试着确定,但它是用它正在迭代的列表中的实际对象创建对象吗?@隐性我想我现在得到了