也许是一个新手问题!返回控制台对象的属性
- 我有2个班 - 卡和手
- 卡与属性:西装,排名
- 手是由卡追加空单创建。所以它的属性 是卡。
我需要在控制台中写类似:
Ace D , Queen H
我在谷歌,我需要认真纠正__str__(self)
方法发现。 我不知道如何在方法__str__(self)
写东西,我的输出将像我上面提到的。例如:
return self.hand
执行以下操作:
[<__main__.Card object>, <__main__.Card object>]
我认为手对象是这样类型的列表:
[[卡1],[卡2], ..
是
[西装1,等级1],[..,..],..]
但我不知道如何利用从名单列表信息。 这样的写没有帮助:手[i] [0]为西装和手[i] [1]为第i张牌 仍然没有得到。这里是代码:
class Card:
def __init__(self, suit, rank):
if (suit in SUITS) and (rank in RANKS):
self.suit = suit
self.rank = rank
else:
print "Invalid card: ", suit, rank
def __str__(self):
return self.suit + self.rank
class Hand:
def __init__(self):
self.hand = []
def __str__(self):
return str(self.hand)
def add_card(self, card):
self.hand.append(card)
创建对象牌
c1 = Card("S", "A")
c2 = Card("C", "2")
创建对象HAND
test_hand = Hand()
添加卡片,随手
test_hand.add_card(c1)
test_hand.add_card(c2)
print test_hand
结果:
[<__main__.Card object>, <__main__.Card object>]
谢谢!我还有一个问题。我不确定,如果我正在制定我的问题,请纠正我:这是唯一一种从Hand类中收集有关我的Class实例(对象c1,c2)的信息的方法吗?例如,如果我想在Hand类的方法中使用Card的变量。 – Ievgenii