当前位置: 首页 > 知识库问答 >
问题:

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

仲孙昊焱
2023-03-14

我正在尝试导入一个模块(module\u name.py),该模块是我使用\uuu import\uuu()创建的,但出现以下错误:

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

模块名称。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个答案

越俊驰
2023-03-14

不是导入过程在类型化参数方面有问题。问题是在Python3.5(PEP 484)中添加了类型化参数,并在Python2.7上引发了这样的语法错误。

很可能(给定SynTaxError),您正在使用较旧版本的Python,为了使其工作,您必须安装并使用较新的Python版本,或者使用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
 类似资料:
  • 我在许多组件中使用了几个大型对象,因此我为每个大型对象创建了一个proptypes文件,如下所示: 其中包含从"prop类型"导入PropType; 我在组件中使用对象,如下所示: 它给我一个警告,Prop类型“PropLargeObject”无效,它必须是一个函数,通常来自React。道具类型。我做错了什么?

  • 我目前有一个表,定期从提供的CSV导入数据。问题是,我有6个数据类型为Decimal(5,2)的列,并且可以为空,当我导入一个不报告任何数字的文件时,这些逗号中显示为“,,,,,,,,,,,,,,,,,,”通常是我希望导入到表中的数字。 当SSIS尝试导入这些“空白”csv时,我得到以下错误 错误:2014-08-04 23:45:01.31代码:0xC020901C来源:数据流任务OLE DB

  • 我把这个文件 放在与 Jupyter 笔记本相同的文件夹中,我尝试导入它,但它给了我错误 我已尝试添加 或 正如这里和这里建议的那样,但我不断收到同样的错误。我还创建了一个 empy 文件,但什么都没有。 编辑:然后我添加了 之前<code>导入em</code>,现在我从python 2.7中得到了很多错误(我不知道为什么python2是用python3编译的,jupyter内核也设置为pyth

  • 如果我有一个单文件Vue类组件,例如: 然后我把它导入其他地方,得到一个实例。 使用标准Vue CLI 3设置,这会出现错误,因为它包含,内容如下: 据我所知,这意味着每当您编写导入Foo时,将只是的别名,您将无法访问其成员。 如果您从文件导入,情况似乎确实如此。如果您从文件导入,它会神奇地工作! 不幸的是,我所有的测试都是文件,因此我无法导入任何组件的类型。这使得测试变得困难。有办法解决这个问题

  • 问题内容: 这是我在这里提出的问题的后续内容:奇怪的Java泛型。 如果我有这样的代码: 我可以添加静态导入并执行以下操作: Eclipse不允许这样做。但是,在Eclipse中看到如此多的静态导入错误之后,我不确定。 问题答案: 不,您不能:我只是通过一些测试代码确认了这一点。 Casts.java Test.java

  • 目前大多数数字内容制作(Digital Content Creation, DCC)工具(3ds Max, Maya, Blender)都能导出 FBX 和 glTF 两种格式的模型文件,所以这些工具导出的内容都能在 Cocos Creator 3D 得到良好的展示。 导出FBX 因为 DCC 工具的坐标系和游戏引擎的坐标系不一定一致,所以在导出模型时需要进行一些变换才能在引擎中得到想要的结果。例