理解Python 3中的类和方法
好吧,在看了很多关于课程的教程视频后,我仍然很难理解我必须完成的作业 我需要写一个程序,基本上做高卡,这意味着我需要2张卡面对,一个是与西装和排名的赢家 排名2-14(11=杰克,12=女王,13=国王,14=王牌) 1-4套西装(梅花、钻石、红桃、黑桃) 这就是我目前所拥有的理解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 =
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。作为旁注,缩进是不正确的(除非粘贴中有错误)。