由于某種原因,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
您可以使用此類來表示某人或某物的優雅程度。“優雅”可以與“花哨”互換。如果你添加花哨的物品,你會增加你的“優雅”。在“Classy”中創建一個函式,將字串作為輸入并將其添加到“items”串列中。另一種方法應該根據專案計算“分類”值。以下專案具有與之相關的優雅點:“tophat”= 2“bowtie”= 4“monocle”= 5 其他所有專案都為 0 分。使用下面的測驗用例來指導您!
uj5u.com熱心網友回復:
您應該宣告getItemClassiness為靜態方法,因為它不需要特定的實體。然后,您可以像呼叫實體方法一樣呼叫該函式。
@staticmethod
def getItemClassiness(item):
...
def getClassiness(self):
...
for item in self.items:
x = self.getItemClassiness(item)
但是對于最后一個測驗用例,它仍然不會給你 15,因為"bowtie" != "bowtie\n". 如果您打算忽略字串開頭或結尾的空格,請使用str.strip().
uj5u.com熱心網友回復:
在第 21 行呼叫類方法時不使用 self 關鍵字。
x = self.getItemClassiness(item)
類似地,在第 8 行中,需要使用 self 關鍵字作為函式定義的引數getItemClassiness
def getItemClassiness(self, item):
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/484898.html
上一篇:python函式更改超引數名稱
下一篇:錯誤:無法加載檔案或程式集“Microsoft.Azure.WebJobs.Script.Abstractions
