理解Python 3中的类和方法

理解Python 3中的类和方法,python,class,function,methods,self,Python,Class,Function,Methods,Self,好吧,在看了很多关于课程的教程视频后,我仍然很难理解我必须完成的作业 我需要写一个程序,基本上做高卡,这意味着我需要2张卡面对,一个是与西装和排名的赢家 排名2-14(11=杰克,12=女王,13=国王,14=王牌) 1-4套西装(梅花、钻石、红桃、黑桃) 这就是我目前所拥有的 class Card: def __init__(self, inRank, inSuit): self.__rank = inRank self.__suit =

好吧,在看了很多关于课程的教程视频后,我仍然很难理解我必须完成的作业

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

排名2-14(11=杰克,12=女王,13=国王,14=王牌)

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

这就是我目前所拥有的

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

有人能给我指一下正确的方向吗?我对如何开始这项工作没有任何说明。

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

回到你原来的问题。我的下一步是创建一个方法
faceoff
,该方法接受另一个卡实例。此方法可以返回赢牌,也可以返回一个布尔值,让您知道呼叫者是否赢了

例如:

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

    # if self beats other
        return True
    return False

您的类很好,不过我会删除属性中的下划线,因为您没有实现任何比较对象的方法。我将定义一个
face\u off
-函数,它接受
card
对象作为参数并返回获胜者。如果我理解正确,您只需比较两张卡的
rank
属性并返回较高的值。然后将整个内容包装在一个
if
块中


实际上,你甚至不需要类,卡片可以是
dict
tuple
,但是如果你想要一个类,你可以为你的类定义,这样你就可以比较对象而不是属性。然后,您可以利用python的内置功能,您的
faceoff
只需返回
max(card\u object\u one,card\u object\u two)
。默认情况下,这适用于dicts和tuple。

用伪代码或英语写下如何决定两张卡中哪一张更好。然后将其翻译成python。作为旁注,缩进是不正确的(除非粘贴中有错误)。