TypeError系列之:TypeError: 'tuple' object is not callable.

TypeError: 'tuple' object is not callable。這又是一個typeerror。我們翻譯一下這個報錯信息,

tuple對象是不可調用的,這是什麼意思。我看了網上很多的東西,發現根本沒有一個合理的解釋,於是就自己做了幾組實驗來分析一下到底是個什麼情況:

實驗如下:

import numpy as np

a = np.zeros([5,5])
print(a)
print(type(a))
print(type(a.shape))
print(a.shape)

輸出:

[[0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0.]]
<class 'numpy.ndarray'>
<class 'tuple'>
(5, 5)

我們不難發現,a.shape是一個turple數據類型,你在後面加“()”,相當於把a.shape看成了一個函數名,a.shape(),相當於調用a.shape函數,因此會報錯:

tuple對象不能被調用 的錯誤!!!!

所以下次再出現這種問題,不管是int,list還是其他的,首先先看看自己的“[ ]” 和“()”是否用錯了,是否誤把數據類型當做函數調用。

一定要與另外一種錯誤區分:

AttributeError: 'tuple' object has no attribute 'shape'

詳見我的另一篇博客:https://blog.csdn.net/qq_41368074/article/details/105738815

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章