關於Python錯誤提示: 'str' object is not callable


  在練習Python代碼的時候遇到了一個問題,導致一個數字轉字符串的語句無法執行,代碼為:

        print(list(map(str, [1, 2, 3])))

錯誤提示為 'str' object is not callable。

  反復檢查幾遍之后,發現語句沒有錯誤。在控制台輸入相同語句,發現可以順利執行輸出正確結果。因此猜測是前面的代碼影響的這一句的執行。但是檢查兩邊之后沒有發現錯誤。

  查找相關博客之后(https://blog.csdn.net/lifelegendc/article/details/55051374)發現是因為前面的代碼將str已經定義為一個普通變量,因此這里調用內置函數str()是無效的,會仍然認為是一個變量,自然就會提示是 not callable。也就是說 str() 是自帶的內置函數,不可以在希望使用字符串轉換函數的同時自定義一個 str 變量。

  我的代碼中,在一開始一個for循環中希望打印一個list中的所有字符串,變量名字取成了 str: 

    classmate = ['one', 'two', 'three']
    for str in classmate:
    print(s + ', ')
    print('\n')
  str() 是一個builtin 函數,在這里將一個普通變量定義為str,編譯器在之后的解釋執行過程中,會一直把str作為一個普通變量處理,自然在希望調用str()的時候會出問題。
把這里的 str 改成 s 等其他變量,就能解決問題。

 


免責聲明!

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



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