AttributeError系列之:AttributeError: 'tuple' object has no attribute 'shape'

翻譯:屬性錯誤,tuple對象沒有shape屬性。

這往往發生在我們對一個tuple類型數據,調用成員變量shape所致(a.shape 或 a.shape[])。

所以要查看調用發生處,看看自己的數據類型是不是有錯。我們看代碼

import numpy as np

a = np.zeros([5,5])
#正確使用方式:
print(a)
print(type(a))
print(type(a.shape))
print(a.shape)
#出錯:

a = tuple(a) #這段代碼將a轉換成了tuple類型

print(type(a))
print(type(a.shape))#報錯
print(a.shape)#報錯

仔細看代碼中註釋報錯的地方均爲錯誤用法!!

相似的報錯有:

AttributeError: 'list' object has no attribute 'shape';

AttributeError: 'int' object has no attribute 'shape';

等,都是這樣的原因,大家要注意!

PS:tuple(a),類型轉換不會影響a的性質,必須要如果想保存轉換後的變量必須,誰聲明新的變量來保存,例 b = tuple(a).

b 就是 tuple型,而a類型不變。

與另一種錯誤區分:TypeError: 'tuple' object is not callable.

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

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