[英]Usage of 'self' keyword inside a method
考慮以下示例代碼:
class Student:
def __init__(self, *args):
self.scores = args
def calculate_sum(self):
return sum(self.scores)
scores = list(map(int, input().split()))
s = Student(scores)
print("sum:", s.calculate_sum())
調用此方法時,出現以下錯誤:
TypeError:+不支持的操作數類型:“ int”和“ list”
但是,如果我從屬性得分中刪除“ self”關鍵字,則效果很好:
def calculate_sum(self):
print(sum(scores))
注意:輸入是一行中以空格分隔的整數。 例如。 100 67 78
是否會有足夠的人來解釋為什么會發生這種情況以及TypeError消息的含義(我將int添加到列表中?!)?
首先,“分數”以列表形式而不是* args形式發送。 因此,這是不正確的,這使self.scores具有列表的元組。
其次,它只使用“分數”而不是“ self.scores”,因為“分數”也是一個全局變量,它是一個列表。
感謝@NieDzejkob和@WillemVanOnsem幫助我弄清楚了這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.