<p>你的程序有太多问题:</p>
<ul>
<li>缩进</li>
<li>某些实例变量作为参数传递给同一类中的其他方法。你知道吗</li>
<li>在<code>Card</code>中,您定义了一个名为<code>c1</code>的方法,但它意味着类的构造函数。你知道吗</li>
<li>方法<code>Deck</code>中的<code>d1</code>也是一个构造函数。所以,我把它从你的全球通话中删除了</li>
<li>要打印对象,必须定义其字符串表示形式。看<a href="https://stackoverflow.com/questions/4932438/how-to-create-a-custom-string-representation-for-a-class-object">How to create a custom string representation for a class object?</a></li>
</ul>
<p>除此之外,你做的<code>print</code>没有任何争论。在这种情况下,您只需执行<code>print('')</code>。你知道吗</p>
<p>这是您的代码,带有适当的缩进,以及用于Python2和Python3的<code>print</code>语句。你知道吗</p>
<pre><code>import random
ranks = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']
suits = ['Hearts', 'Clubs', 'Spades', 'Diamonds']
class Card:
def __init__(self, rank, suit):
self.rank = rank
self.suit = suit
def value(self):
if self.rank in ['J', 'Q', 'K']:
return 10
elif self.rank == 'A':
return 1,11
else:
return int(self.rank)
def c2_(self):
return self.rank + '-' + self.suit
class Deck:
def __init__(self):
self.cards = []
for rank in ranks:
for suit in suits:
c = Card(rank, suit)
self.cards.append(c)
def shuffle(self):
random.shuffle(self.cards)
def draw_card(self):
if not self.cards:
raise Exception("No more cards: empty deck!")
card = self.cards.pop()
return card
def d2(self):
cards = []
for c in self.cards:
cards.append(str(c))
return str(cards)
def test2(self):
deck = Deck()
print('')
print(deck)
deck.shuffle()
print('')
print(deck)
if __name__ == '__main__':
tryss= Deck()
tryss.draw_card()
tryss.shuffle()
tryss.d2()
tryss.test2()
</code></pre>