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