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

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
sandra84
User
Beiträge: 17
Registriert: Mittwoch 9. Juni 2010, 06:34

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..
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

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
sandra84
User
Beiträge: 17
Registriert: Mittwoch 9. Juni 2010, 06:34

*doing*

absolut korrekt.. schande hab ich vergessen, dass sowas geht :P und ohne highlighting.. ja öhm ok danke :wink:
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

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). ;)
sandra84
User
Beiträge: 17
Registriert: Mittwoch 9. Juni 2010, 06:34

aber ich habe gar kein windows ;P

vi
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ah, ok. Naja, unter Linux komme ich mit Gedit am besten klar. Aber das ist Geschmackssache.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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.
Antworten