我的课程类似于以下
class ExperimentResult(BaseDataObject):
def __init__(self, result_type: str, data: dict, references: list):
super().__init__()
self.type = result_type
self.references = references
self.data = data
def __repr__(self):
return str(self.__dict__)
代码是用python 3编写的,而我试图在python 2中运行它。 当我运行它时,我得到了
def __init__(self, result_type: str, data: dict, references: list):
^
SyntaxError: invalid syntax
是否有" import_from_future"解决这个问题?
答案 0 :(得分:7)
不,没有__future__
开关可以在Python 2中启用Python 3注释。如果您使用注释进行类型提示,请改用注释。
有关语法详细信息,请参阅PEP 484的Suggested syntax for Python 2.7 and straddling code部分和Type checking Python 2 code section部分:
对于需要与Python 2.7兼容的代码,函数类型注释在注释中给出,因为函数注释语法是在Python 3中引入的。
对于您的具体示例,它是:
class ExperimentResult(BaseDataObject):
def __init__(self, result_type, data, references):
# type: (str, dict, list) -> None
super().__init__()
self.type = result_type
self.references = references
self.data = data