def experiment(num):
num_list = []
for i in range(int(num)):
num_list.append(i)
return(num_list)
alist = ['2','3']
for number in alist:
for experiment in experiment(number):
print(experiment)
0
1
---------------------------------------------------------------------------
TypeError Traceback (most recent call last) <ipython-input-10-e35c7a8a98c4> in <module>() 7 alist = ['2','3'] 8 for number in alist: ----> 9 for experiment in experiment(number): 10 print(experiment) TypeError: 'int' object is not callable
is not callable,是指不能執行。例如變量后面加()就會報這個錯誤。在for循環中,容易報這個錯誤。
例如在上面的例子中,for循環中使用的變量名稱experiment和函數experiment(num)有一樣的名稱。
在第一次循環時,變量experiment還未被賦值,所以函數experiment(num)可以正常執行。
但第二次循環時,變量experiment已經被賦值成為一個int,所以函數experiment(num)無法正常執行,並報 'int' object is not callable。
修改方法:
避免變量名和函數名一樣。修改如下:
def experiment(num):
num_list = []
for i in range(int(num)):
num_list.append(i)
return(num_list)
alist = ['2','3']
for number in alist:
for experiment_ in experiment(number):
print(experiment_)
0
1
0
1
2