2011-08-15 16 views
9

爲什麼這給我一個錯誤?古怪調用str()將整數轉換爲Python 3中的字符串?

>>> variable = str(21) 

Traceback (most recent call last): 
    File "<pyshell#101>", line 1, in <module> 
    variable = str(21) 
TypeError: 'str' object is not callable 
+4

你是否給變量命名爲「str」? – geoffspear

+2

您是否定義了另一個字符串變量並將其分配給一個變量'str'?因爲這樣做最終會影響內建函數'str()',例如:'str ='test';打印(STR(124))'。 – mouad

+2

downvotes錯位。學習時,我們中的大多數人都會蒙上陰影。用'list = [...]'看看那裏有多少個代碼示例。我更新了這個問題的標題。 – smci

回答

33

單獨的代碼不會給你一個錯誤。舉例來說,我只是嘗試這樣做:

~ $ python3.2 
>>> variable = str(21) 
>>> variable 
'21' 

某處在你的代碼你定義一個str =別的東西,掩蓋的str內置的定義。刪除它,你的代碼將正常工作。

10

因爲你可能已經通過調用自己的變量str覆蓋的str功能。

+0

我想你可能是對的。我關閉了我的IDLE會話(其中有很多早期的代碼示例是我在線發現的),現在我可以正確使用內置的str函數。其中一個較早的代碼示例必須對BIF str()做一些古怪的事情。謝謝! – blueplastic