打印类实例列表的随机实例,但得到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

我对类实例很陌生。我环顾四周,找不到有效的答案。任何帮助,将不胜感激。

吹牛

__str__方法__repr__默认调用,并且您已经通过在on上调用函数__repr__覆盖该方法以调用该__str__方法,从而在尝试打印对象时导致无限递归strselfcards

您应该使该__str__方法返回该cards对象的合理可读的表示形式

def __str__(self):
   return self.val + self.suit

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章