理解Python3中的类和方法

2024-09-30 14:28:17 发布

您现在位置:Python中文网/ 问答频道 /正文

好吧,在看了很多关于课程的教程视频之后,我仍然很难理解这些课程。在

我需要写一个程序,基本上做高卡,这意味着我需要2张牌面对面和一个是赢家与西装和排名。在

2-14级(11=杰克,12=皇后,13=国王,14=王牌)

1-4正装(梅花、钻石、红桃、黑桃)

这就是我目前所拥有的

    class Card:
        def __init__(self, inRank, inSuit):
        self.__rank = inRank
        self.__suit = inSuit

有人能给我指一下正确的方向吗?我不知道该怎么开始。在


Tags: self程序视频教程课程西装国王钻石
2条回答

只是一个简短的旁注。Python mangles class and instance variables,其名称以两个下划线开头。我建议使用一个下划线(或者根本没有下划线)。在

回到你原来的问题上来。我的下一步是创建一个接受另一个card实例的方法faceoff。这个方法可以返回获胜的卡片,也可以返回一个布尔值,告诉你调用方是否赢了。在

例如:

def faceoff(self, other):
    # Compare self against other
    # ...

    # if self beats other
        return True
    return False

你的类很好,尽管我会删除属性中的下划线,因为你没有实现任何比较对象的方法。我将定义一个face_off-函数,它接受card对象作为参数并返回优胜者。如果我理解正确,您只需比较两张牌的rank属性,并返回较高的值。然后把整个东西包装在一个if __name__ == '__main__'块中。在

实际上,您甚至不需要类,卡片可以是dict或{},但是如果您想要一个类,那么可以为您的类定义{a1},这样就可以比较对象而不是属性。然后可以利用python的内置函数,faceoff只返回max(card_object_one, card_object_two)。默认情况下,这适用于dict和tuples。在

相关问题 更多 >