尝试导入具有类型参数的类方法的模块时导入错误

时间:2017-09-13 10:23:52

标签: python python-import importerror

我正在尝试导入我创建的模块module_name.py using __import__() 但我看到以下错误:

Traceback (most recent call last):
  File "test.py", line 80, in <module>
    testImportMethod()
  File "test.py", line 68, in testImportMethod
    m = __import__("module_name")
  File "/dir/module_name.py", line 147
    def insert_model(model: MyModel):
                          ^  
SyntaxError: invalid syntax

module_name.py包含以下代码:

class MyModel(object):
    property1 = None
    property2 = None

class ThingDAO(object):
    @staticmethod
    def get_thing_by_id(id):
    ...

    @staticmethod
    def insert_model(model: MyModel):
    ...

为什么导入过程出现类型参数问题?

1 个答案:

答案 0 :(得分:2)

导入过程不是类型化参数有问题。问题是在Python 3.5(PEP 484)中添加了类型参数,并在Python 2.7上引发了类似的SyntaxErrors。

可能(给定SyntaxError)您使用旧版本的Python并使其工作,您必须安装并使用较新的Python版本或使用workarounds mentioned in the PEP ,例如:

class MyModel(object):
    property1 = None
    property2 = None

class ThingDAO(object):
    @staticmethod
    def get_thing_by_id(id):
        pass

    @staticmethod
    def insert_model(model):
        # type: (MyModel) -> None
        pass