繁体   English   中英

__str__ 对象列表上的方法

[英]__str__ method on list of objects

python 新手,试图创建一个卡片组,并希望为 print(deck) => 实现一种打印方法,该方法给出了我的卡片的打印列表。

我的类 PlayingCard 有一个str方法,它可以很好地打印一张卡片。

但是当我创建我的 Deck.cards 对象(它是一个 PlayingCard 对象列表)时,我似乎无法一次打印所有卡片。

尝试用repr替换str 尝试返回str中的字符串列表

from enum import Enum

class Value(Enum):

    Two = 2
    Three = 3
    Four = 4
    Five = 5 
    Six = 6
    Seven = 7
    Eight = 8
    Nine = 9
    Ten = 10
    Jack = 11
    Queen = 12
    King = 13 
    Ace = 14

class Suit(Enum):

    Spades = 1
    Hearts = 2
    Clubs = 3
    Diamonds = 4


class PlayingCard():

    def __init__(self,value,suit):
        self.value = value
        self.suit = suit


    def __str__(self):
        return '{} of {}'.format(Value(self.value).name, Suit(self.suit).name)

class Deck():

    def __init__(self):
        self.cards=[PlayingCard(val,suit) for val in Value for suit in Suit]

    def __str__(self):
        return str(self.cards)


deck = Deck()
print(deck)

退货

[<__main__.PlayingCard object at 0x000001875FEC0080>,
<__main__.PlayingCard object at 0x000001875FE9EE48>,
....
....
]

python 新手,试图创建一个卡片组,并希望为 print(deck) => 实现一种打印方法,该方法给出了我的卡片的打印列表。

我的类 PlayingCard 有一个str方法,它可以很好地打印一张卡片。

但是当我创建我的 Deck.cards 对象(它是一个 PlayingCard 对象列表)时,我似乎无法一次打印所有卡片。

尝试用repr替换str 尝试返回str中的字符串列表

from enum import Enum

class Value(Enum):

    Two = 2
    Three = 3
    Four = 4
    Five = 5 
    Six = 6
    Seven = 7
    Eight = 8
    Nine = 9
    Ten = 10
    Jack = 11
    Queen = 12
    King = 13 
    Ace = 14

class Suit(Enum):

    Spades = 1
    Hearts = 2
    Clubs = 3
    Diamonds = 4


class PlayingCard():

    def __init__(self,value,suit):
        self.value = value
        self.suit = suit


    def __str__(self):
        return '{} of {}'.format(Value(self.value).name, Suit(self.suit).name)

class Deck():

    def __init__(self):
        self.cards=[PlayingCard(val,suit) for val in Value for suit in Suit]

    def __str__(self):
        return str(self.cards)


deck = Deck()
print(deck)

退货

[<__main__.PlayingCard object at 0x000001875FEC0080>,
<__main__.PlayingCard object at 0x000001875FE9EE48>,
....
....
]

python 新手,试图创建一个卡片组,并希望为 print(deck) => 实现一种打印方法,该方法给出了我的卡片的打印列表。

我的类 PlayingCard 有一个str方法,它可以很好地打印一张卡片。

但是当我创建我的 Deck.cards 对象(它是一个 PlayingCard 对象列表)时,我似乎无法一次打印所有卡片。

尝试用repr替换str 尝试返回str中的字符串列表

from enum import Enum

class Value(Enum):

    Two = 2
    Three = 3
    Four = 4
    Five = 5 
    Six = 6
    Seven = 7
    Eight = 8
    Nine = 9
    Ten = 10
    Jack = 11
    Queen = 12
    King = 13 
    Ace = 14

class Suit(Enum):

    Spades = 1
    Hearts = 2
    Clubs = 3
    Diamonds = 4


class PlayingCard():

    def __init__(self,value,suit):
        self.value = value
        self.suit = suit


    def __str__(self):
        return '{} of {}'.format(Value(self.value).name, Suit(self.suit).name)

class Deck():

    def __init__(self):
        self.cards=[PlayingCard(val,suit) for val in Value for suit in Suit]

    def __str__(self):
        return str(self.cards)


deck = Deck()
print(deck)

退货

[<__main__.PlayingCard object at 0x000001875FEC0080>,
<__main__.PlayingCard object at 0x000001875FE9EE48>,
....
....
]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM