You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何声明返回对象数组的函数?(.Net转Python入门)

Python中给返回对象列表的函数添加IDE类型提示

刚从.NET转Python入门,类型提示这块确实会有不一样的地方,我来帮你搞定怎么让PyCharm这类IDE识别到你的方法返回的是myObj类型的列表~

首先先纠正你原代码里的一个小错误:在myOwner的__init__方法中,self.myListofObj的类型标注写错了,你写成了myObj,但实际这是一个列表,正确的标注应该是list[myObj](Python3.9+)或者List[myObj](Python3.8及以下)。

接下来就是给getMyListOfObj方法添加返回类型提示,分两种场景:

场景1:使用Python 3.9及以上版本

Python3.9开始支持直接用内置的list加方括号来标注泛型类型,不需要额外导入模块,直接这样写:

class myObj:
    def __init__(self):
        self.myValue1: int = 1
        self.myValue2: float = 2.1

class myOwner:
    def __init__(self):
        # 修正列表的类型标注
        self.myListofObj: list[myObj] = []

    # 标注返回值为myObj类型的列表
    def getMyListOfObj(self) -> list[myObj]:
        return self.myListofObj

场景2:使用Python 3.8及以下版本

这时候需要从typing模块导入List泛型类,然后用List[myObj]来标注:

from typing import List

class myObj:
    def __init__(self):
        self.myValue1: int = 1
        self.myValue2: float = 2.1

class myOwner:
    def __init__(self):
        self.myListofObj: List[myObj] = []

    def getMyListOfObj(self) -> List[myObj]:
        return self.myListofObj

这样标注之后,PyCharm就能准确识别到getMyListOfObj返回的是myObj实例组成的列表,当你调用这个方法并遍历列表元素时,IDE会自动提示myObj的属性(比如myValue1、myValue2),和你在.NET里用List<T>时的体验类似~

内容的提问来源于stack exchange,提问作者jlee88my

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 07:03:00