作为python __init__中的参数的类

时间:2014-03-20 08:09:00

标签: python class arguments

我正在努力在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,是吗?

1 个答案:

答案 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()

希望这有帮助。