2017-09-13 78 views
2

我试图导入一个模块(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): 
    ... 

为什么导入过程对类型化参数有问题?

回答

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 
相关问题