使用自定义类作为类型提示时出现泛型参数类型错误怎么办?
解决自定义类作为类型提示的错误
错误原因
你遇到的错误是因为导入的MyClass并非一个类,而是一个模块。这通常是由于导入路径错误,或者目标文件中没有正确定义对应名称的类导致的。
解决步骤
1. 确认类的定义与导入路径匹配
检查mycode/ltm.py文件中是否确实存在名为MyClass的类,示例如下:
# mycode/ltm.py class MyClass: # 类的具体实现 pass
如果MyClass是在mycode/ltm子包下的其他模块中(比如mycode/ltm/MyClass.py),需要调整导入语句:
from mycode.ltm.MyClass import MyClass
或者在mycode/ltm/__init__.py中导出该类,这样原导入语句可以正常使用:
# mycode/ltm/__init__.py from .MyClass import MyClass
2. 确保类型提示的语法符合Python版本要求
- 若使用Python 3.9及以上版本,可以直接使用内置的
list作为泛型类型提示:
from mycode.ltm import MyClass def DoSomething(self, values: list[MyClass]) -> None: # 函数逻辑 pass
- 若使用Python 3.8及以下版本,需要从
typing模块导入List:
from typing import List from mycode.ltm import MyClass def DoSomething(self, values: List[MyClass]) -> None: # 函数逻辑 pass
内容的提问来源于stack exchange,提问作者user1689987
相关产品推荐
相关产品推荐

