Python中str is not callable問(wèn)題詳解及解決辦法
問(wèn)題提出:
?? 在Python的代碼,在運(yùn)行過(guò)程中,碰到了一個(gè)錯(cuò)誤信息:
?? python代碼:
def check_province_code(province, country): num = len(province) while num <3: province = ''.join([str(0),province]) num = num +1 return country + province
? 運(yùn)行的錯(cuò)誤信息:
check_province_code('ab', '001') --------------------------------------------------------------------------- TypeError Traceback (most recent call last)in () ----> 1 check_province_code('ab', '001') in check_province_code(province, country) 3 4 while num <3: ----> 5 province = ''.join([str(0),province]) 6 num = num +1 7 TypeError: 'str' object is not callable
問(wèn)題分析與排查:
?? 從錯(cuò)誤信息分析, str不是一個(gè)可調(diào)用的對(duì)象,可是之前確實(shí)可以調(diào)用的,且在python的api文檔中,其是python內(nèi)置的一個(gè)函數(shù)呀, 怎么不能用了呢?
?還是繼續(xù)驗(yàn)證一下吧。
?? 在命令行下執(zhí)行str(123),將數(shù)字轉(zhuǎn)換為string:
>>> str(1233) --------------------------------------------------------------------------- TypeError Traceback (most recent call last)in () ----> 1 str(1233) TypeError: 'str' object is not callable
?這下問(wèn)題定義清楚了,原來(lái)沒(méi)有了str,仔細(xì)想了想原來(lái)剛才在定義變量的時(shí)候,隨機(jī)使用str,所以就被覆蓋了str函數(shù)。進(jìn)行了類似以下的操作:
str = '123'
恢復(fù)默認(rèn)的str函數(shù)
?? 重新啟動(dòng)一下python應(yīng)用,移除str被覆蓋的代碼部分即可。
總結(jié)
? 在python中內(nèi)置了很多的函數(shù)和類,在自己定義變量的時(shí)候,切記不要覆蓋或者和他們的名字重復(fù)。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
