嗨,我有下面的代码片段,它给出了KeyError。我已经检查了指定make __init__ call to Ordered Dict
的其他链接。但还是不走运。在
from collections import OrderedDict
class BaseExcelNode(OrderedDict):
def __init__(self):
super(BaseExcelNode, self).__init__()
self.start_row = -1
self.end_row = -1
self.col_no = -1
def __getattr__(self, name):
return self[name]
def __setattr__(self, name, value):
self[name] = value
BaseExcelNode()
Error
:
OrderedDict
是在假定属性访问通过默认机制工作的前提下实现的,尤其是属性访问不等同于索引。在当您将其子类化并更改属性访问的工作方式时,您打破了
OrderedDict
实现的一个最深刻的假设,一切都将走向地狱。在使用猴子修补法:
相关问题 更多 >
编程相关推荐