關於 xxx object is not callable
阿新 • • 發佈:2018-12-13
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