Python 类方法不返回
我太困了。。。为什么这个不能返回总分呢?如果在类外作为函数(返回12),它可以完全正常工作,但在类下它只接受初始值0(或我在Python 类方法不返回,python,function,class,methods,return,Python,Function,Class,Methods,Return,我太困了。。。为什么这个不能返回总分呢?如果在类外作为函数(返回12),它可以完全正常工作,但在类下它只接受初始值0(或我在self.score=0中放入的任何其他值)。在本教程中,它也可以完美地工作。所以我很困惑 例如,self.wincard是[”的列表♥ A“,”♦ 5", "♦ 6“] 完整代码如下: gist.github.com/vikadubanevica/af1be06946a92ced851b7e0b7c20def3您能添加您得到的输出和预期输出吗您确定self.wincard
self.score=0
中放入的任何其他值)。在本教程中,它也可以完美地工作。所以我很困惑
例如,self.wincard是[”的列表♥ A“,”♦ 5", "♦ 6“]
完整代码如下:
gist.github.com/vikadubanevica/af1be06946a92ced851b7e0b7c20def3您能添加您得到的输出和预期输出吗您确定
self.wincard
是您认为的吗?如果它在一个类中不起作用,那可能是错误的。无论哪种方式,如果你把打印语句放进去调试它为什么不增加分数,你都可以回答你自己的问题。需要给出一个最小的例子,我们可以用来重现你的问题。刚才我们不知道如何调用代码或捕获返回值等,也不知道self的其他变量是如何设置的。我担心信息太少了。下面是完整的代码:我正在检查玩家在第一次移动后从第224行开始的点数(一旦开始移动,会将点数放低),但它总是返回0,但是wincard显示列表中添加了玩家赢得的牌。您在self中对牌执行。wincard:
,您认为每次通过循环时,card
的值是多少?对于列表中的元素(卡片[2]),您在哪里执行:
,您希望得到哪些元素的值?现在,测试这些假设,并尝试向自己解释实际结果。单独:用你自己的话来说,如果你有字符串“♥ 10“
,告诉您该卡分数的规则是什么?当然,你要在点中查找一些东西。但是具体是什么,你是如何从字符串中得到的呢?
def setScore(self):
self.score = 0
points = {"J":11, "Q":12, "K":13,
"10":10,"9":9,"8":8,"7":7,"6":6,"5":5,
"4":4,"3":3,"2":2, "A":1}
for card in self.wincard:
for elem in list(card[2]):
if elem == "1" or elem =="10":
self.score += 10
else:
self.score += points[elem]
return self.score