我正在努力在python上实现Card deck。我有两个类 Rank 和 Suit 。 现在我必须实现新的类卡,它将两个其他类作为参数。
class Card(object):
def __init__(self, rank, suit)
self.rank = rank
self.suit = suit
当我尝试做的时候
card = Card(*parameters*)
之后card.rank
必须返回<__main__.Ace object at 0x7f2632ed5890>
Ace是卡片的名称。我的代码返回
<class '__main__.Ace'>
。在CARD接受两个类作为参数后,我认为我不必继承Rank和SUit,是吗?
答案 0 :(得分:0)
你需要在Card类的__init__
方法中实例化一个rank对象,尝试以下方法。它会创建一个class rank对象和一个类对象的对象(假设rank和suit不带任何参数)。
class Card(object):
def __init__(self, rank, suit):
self.rank = rank()
self.suit = suit()
或者,您可以在Card类之外创建排名和套装对象,并将它们传递给__init__
方法
我尝试了以下操作并获得了输出<__main__.Rank instance at 0xb7226dac>
class Card(object):
def __init__(self,rank,suit):
self.rank=rank()
self.suit=suit()
class Rank:
pass
class Suit:
pass
def main():
c=Card(Rank,Suit)
print c.rank
main()
希望这有帮助。