【发布时间】:2021-11-30 18:19:31
【问题描述】:
我正在编写一个玩二十一点的脚本,但无法解决我今晚遇到的一个缺陷。基本上,我试图遍历一个类中存在的列表对象。在我的测试用例中,我总是可以让它打印第一张卡片(即红心五),但不能打印剩下的两张。
以下是相关代码:
class Card:
def __init__(self,suit,rank):
self.suit = suit
self.rank = rank
def __str__(self):
return self.rank + " of " + self.suit
class Play_Pile:
def __init__(self,pile_owner):
self.pile_owner = pile_owner
self.pile_cards = []
self.pile_state = "NORM"
def add_card(self,new_card):
self.pile_cards.append(new_card)
#THE FIRST IF STATEMENT AND ITS FOR LOOP ARE DEFECTIVE IN THE CONTEXT OF THE TEST CASE
def __str__(self):
if self.pile_owner == "HUMAN":
for card in self.pile_cards:
return card.rank + " of " + card.suit + "\n"
elif self.pile_owner == "COMPY":
return self.pile_cards[0].rank + " of " + self.pile_cards[0].suit
这是 Unittest 测试用例:
#module references
import unittest
import blackjack
class PlayPile_Display_Test(unittest.TestCase):
playpile_instance = blackjack.Play_Pile("HUMAN")
card_1 = blackjack.Card("Hearts", "Five")
card_2 = blackjack.Card("Spades", "Five")
card_3 = blackjack.Card("Spades", "Ace")
playpile_instance.add_card(card_1)
playpile_instance.add_card(card_2)
playpile_instance.add_card(card_3)
print(playpile_instance)
if __name__ == '__main__':
unittest.main(verbosity = 2)
让我知道我在列表中缺少什么以及如何在类中遍历它们?
【问题讨论】:
标签: python list loops class iterable