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
我对类实例很陌生。我环顾四周,找不到有效的答案。任何帮助,将不胜感激。
该__str__
方法__repr__
默认调用,并且您已经通过在on上调用函数__repr__
来覆盖该方法以调用该__str__
方法,从而在尝试打印对象时导致无限递归。str
self
cards
您应该使该__str__
方法返回该cards
对象的合理可读的表示形式:
def __str__(self):
return self.val + self.suit
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句