1. 程式人生 > >關於 xxx object is not callable

關於 xxx 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
---------------------------------------------------------------------------
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