Python 这行代码是否正在创建Card类的新实例?
我想知道下面这行代码在做什么,我想得到帮助,以便在我启动for循环时完全理解上层类中发生的事情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 = {
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
和rankrank
。查看上面卡
类的初始化
,您可以看到它有这两个属性。这意味着,当你调用对象deck.deck
,你将有一个52或54长度的列表(取决于你是否包含小丑,从外观上看不是),由卡
对象组成。如果你调用deck.deck[3]。suit
你会得到第三张牌的套装,或者deck.deck[3]。rank
会给你排名。@我试着确定,但它是用它正在迭代的列表中的实际对象创建对象吗?@隐性我想我现在得到了