首页 > 解决方案 > 类型提示:返回包含类类型的对象列表的 Python 方法

问题描述

我正在尝试为获取其包含类类型的对象列表的方法提供代码提示

我得到的错误是'name 'PlayersOnline_Result' is not defined'

我试图定义类的导入,但没有奏效: from data import PlayersOnline_Result

from typing import List

class PlayersOnline_Result(object):

    def __init__(self, **kwargs):
        self.fk_server : str = kwargs['fk_server']
        self.number_of_players_connected : int = kwargs.get('number_of_players_connected')
        self.number_of_total_players : int = kwargs.get('number_of_total_players')
        self.date : datetime = kwargs.get('date')

    @classmethod
    def execute(cls, session) -> List[PlayersOnline_Result]:
        query = 'call PlayersOnline'

        query_result = session.execute(query).fetchall()

        result : List[PlayersOnline_Result] =  list(map(PlayersOnline_Result.bind , query_result))

        return result

    @staticmethod
    def bind(x) :
        return PlayersOnline_Result(fk_server = x[0],
                                number_of_players_connected= x[1],
                                number_of_total_players= x[2],
                                date= x[3])

execute()从另一个班级打来电话:

    result = PlayersOnline_Result.execute(self._session)

PlayersOnline_Result 是使用 sqlalchemy 调用的存储过程的结果模型 (dto)。如果我删除代码提示:-> List[PlayersOnline_Result],一切都很好!

我是 python 新手,所以对我温柔一点!(加上我关于SO的第一个问题)

(PS,我知道我可能应该使用视图而不是没有参数的存储过程......)

标签: pythonpython-3.x

解决方案


推荐阅读