由于某种原因,getClassiness函数无法工作,因为它无法调用帮助函数getItemClassiness。这可能是什么原因?谢谢!
class Classy(object):
def __init__(self):
self.items = []
def addItem(self, item):
self.items.append(item)
def getItemClassiness(item):
if item == "tophat":
return 2
if item == "bowtie":
return 4
if item == "monocle":
return 5
return 0
def getClassiness(self):
total = 0
for item in self.items:
x = getItemClassiness(item)
total += x
return total
# Test cases
me = Classy()
# Should be 0
print(me.getClassiness())
# Should be 2
me.addItem("tophat")
print(me.getClassiness())
me.addItem("bowtie")
me.addItem("jacket")
me.addItem("monocle")
print(me.getClassiness())
# Should be 11
me.addItem("bowtie\n")
print(me.getClassiness())
# Should be 15
您可以使用这个类别来表示某人或某事有多优雅。“优雅”可以和“花哨”互换。如果您加入看起来花哨的项目,您会增加您的“优雅”。在“优雅”中建立一个函数,以字串作为输入,并将它加入到“项目”清单中。另一个方法应该根据项目来计算“优雅”值。下列项目有相关的优雅点数:“大礼帽”= 2“领结”= 4“单片眼镜”= 5其他都得0分。使用下面的测试案例来指导你!
3条答案
按热度按时间zwghvu4y1#
你应该将
getItemClassiness
声明为静态方法,因为它不需要特定的示例,然后你就可以像调用示例方法一样调用函数。但是在最后一个测试用例中,它仍然不会给予15,因为
"bowtie" != "bowtie\n"
。如果你想忽略字符串开头或结尾白色,使用str.strip()
。vlurs2pr2#
在第21行中,对类方法的调用没有使用self关键字。
同样,在self关键字的第8行,需要作为
getItemClassiness
函数定义的参数nvbavucw3#
这是我用静态方法所做的。在测试用例中得到了正确的输出。