1. 程式人生 > >解決:TypeError: 'list' object is not callable

解決:TypeError: 'list' object is not callable

如果list變數和list函式重名,會有什麼後果呢?我們可以參考如下程式碼:

list = ['泡芙', '湯圓', '魚兒', '駱駝']

tup_1 = (1, 2, 3, 4, 5)
tupToList = list(tup_1)

print(tupToList)

程式碼執行後出錯了,出錯原因是TypeError: 'list' object is not callable

Traceback (most recent call last):
  File "D:/python_workshop/python6/lesson3_list.py", line 6, in <module>
    tupToList = list(tup_1)
TypeError: 'list' object is not callable

callable()是python的內建函式,用來檢查物件是否可被呼叫,可被呼叫指的是物件能否使用()括號的方法呼叫

在如上程式碼中,由於變數list和函式list重名了,所以函式在使用list函式時,發現list是一個定義好的列表,而列表是不能被呼叫的,因此丟擲一個型別錯誤

解決辦法:我們只需修改變數名list就可以了:

list_1 = ['泡芙', '湯圓', '魚兒', '駱駝']

tup_1 = (1, 2, 3, 4, 5)
tupToList = list(tup_1)

print(tupToList)

執行後和結果是正常的:

[1, 2, 3, 4, 5]

因此,在命名變數時要注意,應避免和python的函式名、關鍵字衝突。