问题及分析
import numpy as np
m = np.arange(24).reshape(2,-1,2,2)
print(m.shape()) #错误处
print(m)
TypeError: ‘tuple’ object is not callable,tuple对象是不可调用的.
TypeError: ‘tuple’ object is not callable 参考
通过几组数据分析一下到底是个什么情况:
a = np.zeros([3,3])
print(a)
print(type(a))
print(type(a.shape))
print(a.shape)
我们不难发现,a.shape是一个tuple数据类型,你在后面加“()”,相当于把a.shape看成了一个函数名,a.shape(),相当于调用a.shape函数,因此会报错:
tuple对象不能被调用 的错误!!!!
所以下次再出现这种问题,不管是int,list还是其他的,首先先看看自己的“[ ]” 和“()”是否用错了,是否误把数据类型当做函数调用。
一定要与另外一种错误区分:AttributeError: ‘tuple’ object has no attribute ‘shape’
修改
print(m.shape()) 改为print(m.shape)
import numpy as np
m = np.arange(24).reshape(2,-1,2,2)
print(m.shape)
print(m)