打印 class 个实例列表的随机实例,但出现 RecursionError python3
Printing a random instance of a list of class instances but getting a RecursionError python3
import random
class cards():
def __init__(self,val,suit):
self.val = val
self.suit = suit
def __repr__(self):
return str(self)
deck = []
card_val = ['A','2','3','4','5','6','7','8','9','10','J','Q','K']
card_suit = ['♦','♥','♠','♣']
for x in card_val:
for y in card_suit:
card = cards(x,y)
deck.append(card)
print(random.choice(deck))
当它尝试打印时出现以下错误:
RecursionError: maximum recursion depth exceeded while calling a Python object
我是 class 个实例的新手。我环顾四周,找不到任何有效的答案。任何帮助将不胜感激。
__str__
方法默认调用__repr__
,你通过调用[=15=覆盖了__repr__
方法来调用__str__
方法] self
上的函数,导致当您尝试打印 cards
对象时无限递归。
您应该使 __str__
方法 return 成为 cards
对象的合理可读表示:
def __str__(self):
return self.val + self.suit
import random
class cards():
def __init__(self,val,suit):
self.val = val
self.suit = suit
def __repr__(self):
return str(self)
deck = []
card_val = ['A','2','3','4','5','6','7','8','9','10','J','Q','K']
card_suit = ['♦','♥','♠','♣']
for x in card_val:
for y in card_suit:
card = cards(x,y)
deck.append(card)
print(random.choice(deck))
当它尝试打印时出现以下错误:
RecursionError: maximum recursion depth exceeded while calling a Python object
我是 class 个实例的新手。我环顾四周,找不到任何有效的答案。任何帮助将不胜感激。
__str__
方法默认调用__repr__
,你通过调用[=15=覆盖了__repr__
方法来调用__str__
方法] self
上的函数,导致当您尝试打印 cards
对象时无限递归。
您应该使 __str__
方法 return 成为 cards
对象的合理可读表示:
def __str__(self):
return self.val + self.suit