我想使用 pypy 来加速我的 python 代码。但我有这些奇怪的问题。
这是我在类的 init 方法中的代码:
self._parse_function_by_id_prefix = {
'T': self._parse_textbound_annotation,
'M': self._parse_modifier_annotation,
'A': self._parse_attribute_annotation,
'N': self._parse_normalization_annotation,
'R': self._parse_relation_annotation,
'*': self._parse_equiv_annotation,
'E': self._parse_event_annotation,
'F': self._parse_textlevel_annotation,
'#': self._parse_comment_annotation,
}`
这将在需要时调用正确的函数,它的定义如下
def _parse_textlevel_annotation(self, _id, data, data_tail, input_file_path):
_type, ids = data.split(' ')
ids = ids.split(';')
return TextLevelAnnotation(_id,_type,ids,data_tail.strip())
def _parse_textbound_annotation(self, _id, data, data_tail, input_file_path):
_type, spans = self._split_textbound_data(_id, data, input_file_path)
return TextBoundAnnotation(spans, _id, _type, data_tail, source_id=input_file_path)
当我尝试使用“pypy 文件名”运行它时,我得到一个 _parse_textbound_annotation 的 AttributeError 并且只有这个,其他的没有给出错误。当我使用普通编译器时,它工作得很好。
Traceback (most recent call last):
File "app_main.py", line 51, in run_toplevel
File "annotation.py", line 2132, in <module>
ann = TextAnnotations("/home/hast/Downloads/brat/data/brat_vb/sentiment/test")
File "annotation.py", line 1059, in __init__
Annotations.__init__(self, document, read_only)
File "annotation.py", line 330, in __init__
'F': self._parse_textlevel_annotation,
AttributeError: 'TextAnnotations' object has no attribute '_parse_textlevel_annotation'
我还遇到了另一个奇怪的 NameError,因为没有定义全局名称,但只需重新输入即可解决。