Seite 1 von 1

TypeError: 'list' object not callable bei str(integer)

Verfasst: Mittwoch 28. Juli 2010, 09:24
von sandra84
Holla,

ich steh mal wieder auf dem Schlauch und kann mir nicht erklären warum es so ist, wie es ist :K

Ich habe ein Programm wo ich Daten in geschachtelten Dictionaries und Listen aufbereite. Die Ausgabe ging bisher über print, aber jetzt dachte ich mir, es wäre besser das ganze gleich in ein File rauszuschreiben.

Blöderweise gibts da ein paar kleinere Schwierigkeiten und zwar versuchte ich erstmal einfach mit file.write(daten) in das File zu schreiben, was auch geht, bis auf genau eine Stelle im Code:

Code: Alles auswählen

...
icpuID = int(cpuID[1]) 

print icpuID, type(icpuID) 

print dataDict[icpuID] 

print type(icpuID)

file.write(icpuID) 

file.write(str(icpuID))

print str(icpuID)




Zeile 1: geprüft, und funktionsfähig. Zahl ist da und ist auch ein Integer
Zeile 2: alles ok
Zeile 3: Ausgabe ok
Zeile 4: <type 'int'>
Zeile 5: Fehler: TypeError: argument 1 must be a string or read-only character buffer, not int <- vollkommen klar und auch in Ordnung!
Zeile 6: (Zeile 5 auskommentiert) -> TypeError: 'list' object is not callable
Zeile 7: (Zeile 5,6 auskommentiert) -> TypeError: 'list' object is not callable

Jemand eine Idee? Ich weiss da einfach nich weiter..

Re: TypeError: 'list' object not callable bei str(integer)

Verfasst: Mittwoch 28. Juli 2010, 09:35
von snafu
Prüfe mal, was `str` bei dir ist. Der Fehlermeldung nach zu urteilen hast du das Builtin irgendwo überschrieben:

Code: Alles auswählen

>>> str = []
>>> str(42)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'list' object is not callable

Re: TypeError: 'list' object not callable bei str(integer)

Verfasst: Mittwoch 28. Juli 2010, 09:48
von sandra84
*doing*

absolut korrekt.. schande hab ich vergessen, dass sowas geht :P und ohne highlighting.. ja öhm ok danke :wink:

Re: TypeError: 'list' object not callable bei str(integer)

Verfasst: Mittwoch 28. Juli 2010, 10:15
von snafu
Falls du unter Windows den Standard-Editor Notepad benutzt, solltest du dich spätestens jetzt fragen, ob das so sinnvoll ist (du hast das fehlende Highlighting ja schon angesprochen). ;)

Re: TypeError: 'list' object not callable bei str(integer)

Verfasst: Mittwoch 28. Juli 2010, 10:25
von sandra84
aber ich habe gar kein windows ;P

vi

Re: TypeError: 'list' object not callable bei str(integer)

Verfasst: Mittwoch 28. Juli 2010, 10:31
von snafu
Ah, ok. Naja, unter Linux komme ich mit Gedit am besten klar. Aber das ist Geschmackssache.

Re: TypeError: 'list' object not callable bei str(integer)

Verfasst: Mittwoch 28. Juli 2010, 13:46
von cofi
Naja Highlighting sollte nicht unbedingt Funktionen extra behandeln, auch wenn sie `built-in` sind. Bei vim kannst du das hightlighting aber anpassen, wenn du denn unbedingt willst (ungetestet):

Code: Alles auswählen

highlight python-builtin fg=red bg=green
Und mit dem Snippet (Ausgabe in Datei umleiten) kannst du dir die Regeln erzeugen lassen

Code: Alles auswählen

import __builtin__ as builtin
for b in dir(builtin):
    print "syntax match python-builtin /%s/" % b

Die Sache ist halt, dass Code danach aussieht, wie ein Weihnachtsbaum. IIRC kümmern sich Tools wie `pylint`, `pychecker` usw aber darum.