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



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM