簡體   English   中英

方法中'self'關鍵字的用法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM