python - 尝试导入具有带类型参数的类方法的模块时出现导入错误

标签 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):
    ...

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

最佳答案

并不是导入过程存在类型参数问题。问题在于 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

关于python - 尝试导入具有带类型参数的类方法的模块时出现导入错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46195012/

相关文章:

javascript - 我的 Django 和 jQuery AJAX 表单提交设置有什么问题?

python - python模块的目录设置

Python3导入错误smart_unicode django

python - 一个循环的时间复杂度

python - PyDrive 只获取我的文件和与我共享的文件。 Python

python - 导入 `__init__.py`中动态生成的模型类

python - 关于python错误: "ImportError: cannot import name Dynamic"

windows-7 - Python 3 - "ImportError: No module named …"

python - 在python中实例化一个类时返回另一个类

python - 在 python 3.7 中使用 exec() 导入别名不起作用