ich habe ein recht merkwürdiges Problem, das mich schon eine Weile beschäftigt hat. Vielleicht kann mir ja hier jemand helfen.
Ich habe das Problem soweit eingegrenzt und eine kleine Testklasse zum Reproduzieren geschrieben.
In der Klasse ist die Methode getattr definiert. Außerdem wird die Klasseninstanz als Index für ein dict (testi) benutzt. Das Problem ist nun, dass der Aufruf "testi[self] = num" scheinbar ein Attribut __hash__ aufruft, was nicht definiert ist. Folglich landet der Aufruf in getattr und wird nicht bearbeitet. Es wird None zurück gegeben (was als Index für das dict wohl nicht okay ist) und das Programm verabschiedet sich mir:
Code: Alles auswählen
TypeError: 'NoneType' object is not callable
Vielen Dank schon mal im Voraus.
lunas
Code: Alles auswählen
testi = {}
class A:
def add (self,num):
testi[self] = num
def __getattr__ (self, name):
print 'attribute:', name
a = A()
a.add (42)
print testi