Python 对象返回一个列表

Fra*_*ati 1 python oop python-3.x python-class

我有一个甲板类,我从中创建了一个甲板对象:

class Deck:
  cards = []

deck = Deck()
Run Code Online (Sandbox Code Playgroud)

如何使甲板对象在调用时返回卡片列表?

print(deck)

# or

for card in deck:
  # do
Run Code Online (Sandbox Code Playgroud)

不必总是调用deck.cards?

jiz*_*AMA 9

您可以__iter__在类中定义Deck:

class Deck:
    def __init__(self):
        self.cards = [1, 2, 3]

    def __iter__(self):
        for i in self.cards:
            yield i


deck = Deck()
for card in deck:
    print(card)
Run Code Online (Sandbox Code Playgroud)

这个打印:

1
2
3
Run Code Online (Sandbox Code Playgroud)