2011-08-15 14 views
9

Dlaczego to powoduje błąd?Weirdness calling str() do konwersji liczby całkowitej na ciąg w Pythonie 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

czy nazwałaś zmienną "str"? – geoffspear

+2

Czy zdefiniowałeś inną zmienną łańcuchową i przypisałeś ją do zmiennej 'str'? ponieważ w ten sposób kończymy śledzenie wbudowanej funkcji 'str()' np: 'str = 'test'; print (str (124)) '. – mouad

+2

Downvotes są źle umieszczone. Większość z nas ma zacienione wbudowane, kiedy się uczy. Zobacz, ile przykładów kodu znajduje się tam z 'list = [...]'. Zaktualizowałem tytuł tego pytania. – smci

Odpowiedz

33

Ten sam kod nie spowoduje błędu. Na przykład, po prostu próbowałem to:

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

gdzieś w kodzie jesteś zdefiniowania tego str = coś innego, zamaskowanie wbudowanego definicję str. Usuń to i twój kod będzie działał poprawnie.

10

Bo to prawdopodobnie nadpisane funkcję str nazywając swoją zmienną str.

+0

Myślę, że możesz mieć rację. Zamknąłem swoją sesję IDLE (która miała dużo wcześniejszych próbek kodu, które znalazłem w Internecie) i teraz mogę poprawnie używać wbudowanej funkcji str. Jedna z tych wcześniejszych próbek kodu musiała zrobić coś dziwnego dla BIF str(). Dzięki! – blueplastic

Powiązane problemy