【发布时间】:2015-11-10 16:43:56
【问题描述】:
我正在使用一些代码 (specifically Parsetron),它是为 Python 2.7 编写的,我正在尝试使用 python 3.4 运行它,不出所料,它会抛出错误。
我特别关注的错误是:
def __new__(cls):
return cls.__dict__['_grammar_']
KeyError: '_grammar_'
cls 是类对象,它确实没有键“_grammar_”。我的问题当然是,如何摆脱这个错误以及它出现的原因。在 python 2.7 中,__dict__ 是否向类对象添加键值,而 Python 3.x 没有?在调试期间通过线程运行它似乎没有在任何地方添加这个值。有谁知道怎么回事?
【问题讨论】:
-
您能否为此创建一个minimal reproducible example,而不是两条无实体的行,并提供完整的回溯?
-
它看起来像 new 方法正在尝试实现某种单例 - 但是,如果这确实是 new 方法的总和做得不好。正如@jonrsharpe 所说 - 为此需要一个适当的例子:
标签: python python-2.7 python-3.x nlp