實際上我多次得到這個錯誤,我不知道它來自哪裏。 我的功能是算總的比較中BST, 她是我的代碼'str'對象沒有屬性'比較'
def total(bst):
s = Stack()
total = 0
s.push(bst._root)
while not s.is_empty():
x = s.pop()
nu = x._value
total = total + nu.comparisons
if x._right:
s.push(x._right)
if node._left:
s.push(x._left)
return total
這裏是錯誤
total = total + i.comparisons
AttributeError: 'str' object has no attribute 'comparisons'
這裏是信的CLAAS:
class Letter:
def __init__(self, letter):
assert letter.isalpha() and letter.isupper(), "Invalid letter"
self.letter = letter
self.count = 0
self.comparisons = 0
return
def __str__(self):
return "{}: {}, {}".format(self.letter, self.count, self.comparisons)
def __eq__(self, rs):
self.count += 1
self.comparisons += 1
result = self.letter == rs.letter
return result
def __lt__(self, rs):
self.comparisons += 1
result = self.letter < rs.letter
return result
def __le__(self, rs):
self.comparisons += 1
result = self.letter <= rs.letter
return result
任何人都可以向我解釋,謝謝你的任何迴音。
您將self.comparisons定義爲類Letter的值。 'num'是一個字符串值,所以爲了使用它,你必須定義一個字母對象來使用比較。 – JustDucky