Python函数入参列表如何指定自定义对象类型?
解决列表元素类型标注问题
你的代码存在两个核心问题:
- 参数名重复:
listType1被重复定义两次,这本身就会引发语法错误 - 类型标注方式错误:在Python 3.9之前的版本中,原生
list类型不支持下标([int]这类写法),需要借助typing模块的专用类型工具
以下是正确的实现方式:
情况1:Python 3.9及以上版本
Python 3.9开始支持原生集合类型直接做下标标注,只需修正重复参数名,直接使用list[自定义对象类型]即可:
class MyObject: # 自定义对象的定义 pass class TestClass: def testInput(self, listType1: list[int], listType2: list[bool], listType3: list[MyObject]) -> None: pass
情况2:Python 3.8及以下版本
需要从typing模块导入List类型来完成标注:
from typing import List class MyObject: # 自定义对象的定义 pass class TestClass: def testInput(self, listType1: List[int], listType2: List[bool], listType3: List[MyObject]) -> None: pass
注意:自定义对象MyObject必须在类型标注前完成定义,否则解释器无法识别该类型。
内容的提问来源于stack exchange,提问作者Stefø
相关产品推荐
相关产品推荐

