問題
我正在 Udemy 上學習 Python,并想列印出在以下腳本中創建的卡片組。
正品
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':11, 'Queen':12, 'King':13, 'Ace':14}
class Card:
def __init__(self,suit,rank):
self.suit = suit
self.rank = rank
self.value = values[rank]
def __str__(self):
return self.rank ' of ' self.suit
class Deck:
def __init__(self):
# Note this only happens once upon creation of a new Deck
self.all_cards = []
for suit in suits:
for rank in ranks:
# This assumes the Card class has already been defined!
self.all_cards.append(Card(suit,rank))
def shuffle(self):
# Note this doesn't return anything
random.shuffle(self.all_cards)
def deal_one(self):
# Note we remove one card from the list of all_cards
return self.all_cards.pop()
作品
當我想挑選一張卡片時,上述方法有效。
print(Deck().all_cards[0])
#Two of Hearts
錯誤
然而,當我嘗試列印出整個甲板(或只是輸入它)時,它不起作用。
print(Deck().all_cards)
#[<__main__.Card object at 0x0000028F128D1700>, <__main__.Card object at 0x0000028F128D1280>, #<__main__.Card object at 0x0000028F128D1730>, <__main__.Card object at 0x0000028F128D1D60>,
#...
#...
#<__main__.Card object at 0x0000028F128D9C40>, <__main__.Card object at 0x0000028F128D9C70>]
嘗試
我試圖向腳本添加列印行,但這沒有用。任何幫助,將不勝感激。
uj5u.com熱心網友回復:
添加__repr__到您的Card班級:
class Card:
def __init__(self,suit,rank):
self.suit = suit
self.rank = rank
self.value = values[rank]
def __str__(self):
return self.rank ' of ' self.suit
def __repr__(self):
return str(self) # return the same thing as `__str__`
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/360478.html
