Python中報(bào)錯(cuò) “TypeError: ‘list‘ object is not callable”問(wèn)題及解決
問(wèn)題
用 list() 函數(shù)新建列表時(shí),報(bào)錯(cuò)
“TypeError: ‘list’ object is not callable”
原因
一開(kāi)始我找不到原因,因?yàn)槲业拇a和書(shū)上的例子是一模一樣的,為什么會(huì)報(bào)錯(cuò)呢?
后來(lái)在StackOverflow的一個(gè)問(wèn)答 里找到了原因,因?yàn)橹暗拇a把list用于命名。
我之前在定義一個(gè)列表時(shí)用了 list=[1,2,3]
,后來(lái)覺(jué)得不妥,運(yùn)行這行代碼之后又刪除了。
但是 Jupyter Notebook 是交互式編輯器,除非重啟kernel,一旦命名,這個(gè)變量就占用了內(nèi)存。
所以,后面調(diào)用 list() 函數(shù)運(yùn)行代碼 list1=list(range(10))
時(shí),編譯器就把其中的 list
解釋為之前定義過(guò)的列表[1,2,3],程序運(yùn)行出錯(cuò)。
解決方法
1.千萬(wàn)不要用 list,tuple 等等 Python 的數(shù)據(jù)類(lèi)型名來(lái)命名相應(yīng)的對(duì)象,同理,不要用 for, in 這些關(guān)鍵詞命名。
2.此時(shí)可以用 del list
,釋放變量 list 占用的內(nèi)存,這樣再使用 list() 函數(shù)時(shí)就會(huì)正確解釋。同時(shí)需要注意,之前定義名字為 list 的列表也已經(jīng)不存在了。而如果在 Jupyter Notebook 遇到和我類(lèi)似的情況,也可以重啟kernel(也是在釋放內(nèi)存),然后運(yùn)行 list() 函數(shù)所在代碼單元。
附注:
在上述 StackOverflow 的回答里,大神還提到了一種情況,比如,定義了一個(gè)列表: nums=[1,2,3]
,正常情況下,我們要用 nums[i]
來(lái)索引元素。
而如果用 nums(i)
,也會(huì)報(bào)同樣的錯(cuò)誤:“TypeError: ‘list’ object is not callable”。
參考:
https://stackoverflow.com/questions/31087111/typeerror-list-object-is-not-callable-in-python
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Python中TypeError:unhashable?type:'dict'錯(cuò)誤的解決辦法
- Python?TypeError:?‘float‘?object?is?not?subscriptable錯(cuò)誤解決
- Python開(kāi)發(fā)時(shí)報(bào)TypeError:?‘int‘?object?is?not?iterable錯(cuò)誤的解決方式
- python報(bào)錯(cuò)TypeError: Input z must be 2D, not 3D的解決方法
- 解決python錯(cuò)誤提示:TypeError: expected string or bytes-lik問(wèn)題
相關(guān)文章
Python算法之棧(stack)的實(shí)現(xiàn)
這篇文章主要介紹了Python算法之棧(stack)的實(shí)現(xiàn),非常實(shí)用,需要的朋友可以參考下2014-08-08利用python爬取古詩(shī)文網(wǎng)中各類(lèi)古詩(shī)的方法
這篇文章主要介紹了利用python爬取古詩(shī)文網(wǎng)中各類(lèi)古詩(shī)的方法,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-03-03python使用tkinter打造三維繪圖系統(tǒng)的示例代碼
Python?的?tkinter?模塊是一個(gè)常用的?GUI(圖形用戶(hù)界面)工具包,它能夠讓你創(chuàng)建窗口應(yīng)用程序,你可以使用它來(lái)構(gòu)建用戶(hù)友好的界面,包括按鈕、標(biāo)簽、文本框、列表框等各種控件,本文講給大家介紹如何使用tkinter打造三維繪圖系統(tǒng),需要的朋友可以參考下2023-08-08基于Python PaddleSpeech實(shí)現(xiàn)語(yǔ)音文字處理
PaddleSpeech基于飛槳PaddlePaddle的語(yǔ)音方向的開(kāi)源模型庫(kù),用于語(yǔ)音和音頻中的各種關(guān)鍵任務(wù)的開(kāi)發(fā),包含大量基于深度學(xué)習(xí)前沿和有影響力的模型。本文將介紹如何通過(guò)PaddleSpeech實(shí)現(xiàn)語(yǔ)音文字處理,感興趣的可以學(xué)習(xí)一下2022-01-01Python模塊的定義,模塊的導(dǎo)入,__name__用法實(shí)例分析
這篇文章主要介紹了Python模塊的定義,模塊的導(dǎo)入,__name__用法,結(jié)合實(shí)例形式分析了Python的概念、功能、導(dǎo)入及__name__相關(guān)使用技巧,需要的朋友可以參考下2020-01-01使用Python實(shí)現(xiàn)快速?gòu)?fù)制或剪切文件列表中的所有文件
在程序開(kāi)發(fā)的過(guò)程中,處理文件是我們?nèi)粘9ぷ髦幸粋€(gè)很重要的環(huán)節(jié),所以這篇文章小編就來(lái)和大家一起聊聊如何用Python來(lái)快速?gòu)?fù)制或剪切一個(gè)文件列表中的所有文件吧2025-04-04pandas dataframe統(tǒng)計(jì)填充空值方式
這篇文章主要介紹了pandas dataframe統(tǒng)計(jì)填充空值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02