2017-04-27 4 views
0

Ich stehe vor einem seltsamen Problem.Random AttibuteError auf python3

Ich änderte ein Stück python2 Ich musste Python3 mit 2to3.

Danach wird mein Code zufällig läuft/versagt ... Den Fehler erhalte ich, wenn es zu einem Attribute Fehler ... Aber in python2 und in zufälligen python3 Studien im Zusammenhang versagt es funktioniert, und das Attribut finden ...

Ich habe dieses Verhalten auf 2 Computern getestet, die beide python3.4 ausführen.

Hätten Sie eine Ahnung, was schief läuft (ich bin verwirrt über diesen "zufälligen" Fehler)? Hier

ist die Spur I erhalten:

Traceback (most recent call last): 
File "tools/ciregs.py", line 1596, in <module> 
module = Module(json_data) 
File "tools/ciregs.py", line 1147, in \__init__ 
self.registers = [Register(json_reg, parent_module=self) for json_reg in json_module[key]] 
File "tools/ciregs.py", line 1147, in <listcomp> 
self.registers = [Register(json_reg, parent_module=self) for json_reg in json_module[key]] 
File "tools/ciregs.py", line 1260, in \__init__ 
self.fields = [Field(json_field, self) for json_field in json_reg[key]] 
File "tools/ciregs.py", line 1260, in <listcomp> 
self.fields = [Field(json_field, self) for json_field in json_reg[key]] 
File "tools/ciregs.py", line 1443, in \__init__ 
self.check()   
File "tools/ciregs.py", line 1453, in check 
if(self.bitWidth <= 0 or self.bitWidth > self.parent_reg.size()): 
File "tools/ciregs.py", line 1326, in size return self.parent_module_.width 
AttributeError: 'Module' object has no attribute 'width' 

ein Wörterbuch haben, die eine "Breite" Schlüssel enthält. In einem Unterelement möchte ich die Größe des Unterelements gegen die Breite des Oberteils bewerten, um zu sehen, ob es passt.

Aus diesem Grund versuche ich auf self.parent_reg.size() zuzugreifen, dass der Zugriff auf die Breite und die zufällige Ausgabe dieser Attributbreite im Wörterbuch der obersten Ebene nicht existiert.

Danke für Ihre Hilfe!

+2

ohne den Code, es ist schwierig! –

+3

Weder Code, noch Fehlermeldung - das ist ein Job für einen Wahrsager. –

+0

Es tut mir leid, ich versuche derzeit, einen Testfall zu isolieren, der Code ist ziemlich groß. Die Fehlermeldung, die ich bekomme, ist (in Kurzfassung, siehe Vollversion in meiner Nachbearbeitung: ... Datei "tools/ciregs.py", Zeile 1453, im Test if (self.bitWidth <= 0 oder self.bitWidth > self.parent_reg.size()): Datei "Tools/ciregs.py", Linie 1326, in der Größe return self.parent_module_.width Attribute: 'Modul' Objekt kein Attribut 'width' hat – user1654361

Antwort

0

Ok Leute, danke für deine Hilfe, @Bryan Oakley, deine Hilfe hat mir geholfen.

Am Ende ist das Problem, dass ich meine Schlüssel von einem Json bekomme ich laden, und die Last wurde auf ein Wörterbuch und kein sortiertes Wörterbuch getan.

Einer meiner Schlüssel, zuletzt in JSON, ruft dann Funktionen auf, die erwarten, dass andere Schlüssel (Breite im Fehler gemeldet) gesetzt werden.

Wenn das Wörterbuch nicht sortiert ist, wird der Breitenschlüssel in einigen Fällen vor der Einstellung des letzten Schlüssels festgelegt und in einigen anderen Fällen nicht.

ich verwirrt bin immer noch, warum es für python2 ....

Dank allen für Ihre Hilfe gearbeitet!