coinCount = [2 for i in range(4)]
total = sum(coinCount)
這給了我'廉政' 對象不是可調用
TypeError: 'int' object is not callable
我不明白爲什麼,因爲
print type(coinCount)
給我
type <'list'>
coinCount = [2 for i in range(4)]
total = sum(coinCount)
這給了我'廉政' 對象不是可調用
TypeError: 'int' object is not callable
我不明白爲什麼,因爲
print type(coinCount)
給我
type <'list'>
您確定使用此標識符sum
以前在你的代碼中是一個局部變量名,你綁定的最後一個值是int
。因此,在該代碼片段中,您試圖調用int
。 print sum
就在您嘗試調用它之前,您會看到,但代碼檢查可能會更快地顯示它。
這種問題是爲什麼專家Pythonistas反覆告訴新手「不要爲自己的變量使用內建名稱!」即使它顯然不是傷害特定的代碼片段:這是一個可怕的習慣,錯誤只是等待發生,如果你使用的標識符,如sum
,file
,list
等,作爲自己的變量或函數 - )
我想補充一下Alex Martelli所說的不要使用sum作爲變量名稱,但如果你的程序已經太長了,或者你正在閒置,並且你不想重頭開始可以做
sum2 = sum
del sum
到總和的價值轉移到SUM2(如有必要),並刪除該變量總和(允許你繼續與求和函數工作)
經常推薦的替代方法是在標識符上加下劃線後綴,否則這些標識符會與保留字和內置標識符相沖突;即'type_'或'sum_'或'from_'(如果你使用介詞作爲標識符)。 – cdleary 2010-03-17 07:21:17