首頁  >  文章  >  後端開發  >  Python中str is not callable問題詳解及解決方法

Python中str is not callable問題詳解及解決方法

高洛峰
高洛峰原創
2017-02-13 16:14:101686瀏覽

Python中str is not callable問題詳解及解決方法

問題提出:

   在Python的程式碼,在運作過程中,碰到了一個錯誤訊息:

   python程式碼:

def check_province_code(province, country):
  num = len(province)
    
  while num <3:
    province = &#39;&#39;.join([str(0),province])
    num = num +1
    
  return country + province

問題分析與排查:

   從錯誤訊息分析, str不是一個可調用的對象,可是之前確實可以調用的,且在python的api文檔中,其是python內置的一個函數呀, 怎麼樣不能用了呢?

 還是繼續驗證一下吧。

   在命令列下執行str(123),將數字轉換為string:

check_province_code(&#39;ab&#39;, &#39;001&#39;)
---------------------------------------------------------------------------
TypeError                 Traceback (most recent call last)
<ipython-input-44-02ec8a351cce> in <module>()
----> 1 check_province_code(&#39;ab&#39;, &#39;001&#39;)
  
<ipython-input-43-12db968aa80a> in check_province_code(province, country)
   3 
   4   while num <3:
----> 5     province = &#39;&#39;.join([str(0),province])
   6     num = num +1
   7 
  
TypeError: &#39;str&#39; object is not callable

 這下問題定義清楚了,原來沒有了string,仔細想了想原來剛才在定義變數的時候,隨機使用str ,所以就被覆蓋了str函數。進行了類似以下的操作:

>>> str(1233)
---------------------------------------------------------------------------
TypeError                 Traceback (most recent call last)
<ipython-input-45-afcef5460e92> in <module>()
----> 1 str(1233)
  
TypeError: &#39;str&#39; object is not callable

恢復預設的str函數

   重新啟動一下python應用,移除str被覆蓋的程式碼部分即可。

總結

  在python中內建了很多的函數和類,在自己定義變數的時候,切記不要覆蓋或和他們的名字重複。

感謝閱讀,希望能幫助大家,謝謝大家對本站的支持!

更多Python中str is not callable問題詳解及解決方法相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn