繁体   English   中英

python3上的随机AttibuteError

[英]Random AttibuteError on python3

我面临一个奇怪的问题。

我使用2to3将一块python2更改为python3。

在此之后,我的代码将随机运行/失败...错误时出现的错误与属性错误相关...但是在python2和随机python3试用中,它可以正常工作,并找到属性...

我在两个都运行python3.4的机器上测试了此行为。

您是否有问题的任何线索(我对这种“随机”失败感到困惑)?

这是我得到的跟踪:

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'

我有一本包含“宽度”键的字典。 在一个子元素中,我想相对于顶部的宽度评估所述子元素的大小,以查看其是否合适。

这就是为什么我尝试访问self.parent_reg.size()来访问宽度,并随机发出顶级字典中不存在属性width的问题。

谢谢你的帮助!

好的,谢谢您的帮助,@ Bryan Oakley,您的帮助帮助了我。

最后,问题是我从加载的json获取密钥,并且加载是在字典上完成的,而不是在已排序的字典上完成的。

我的一个键(最后一个位于json中)然后调用需要设置其他键(报告的错误中的宽度)的函数。

不对字典进行排序会使宽度键在某些情况下在设置最后一个键之前设置,而在其他情况下则不设置。

我仍然感到困惑,为什么它适用于python2。

感谢你的帮助 !

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM