如何在Python中注释返回数组的函数?

时间:2019-01-03 22:03:51

标签: python arrays function annotations definition

考虑以下Python代码:

def foo(aqs : typing.List[int]) -> ??? :
    array_type = ctypes.c_int64 * len(aqs)
    ans = array_type(*aqs)
    return ans

如何注释此函数的返回值? (代替???

2 个答案:

答案 0 :(得分:2)

此函数没有一致的返回类型,因为返回的数组的长度是数组类型的一部分。但是,类型始终是ctypes.Array的子类,它是您可以使用的最具体的注释:

REST/API/1.0/PROJECTS/{PROJECTKEY}/REPOS/{REPOSITORYSLUG}/PULL-REQUESTS?AT={refId}&direction=outgoing

答案 1 :(得分:0)

我是Python的新手,但看来typing.List[T]是您要找的东西(就像@JörgBeyer在上面的评论中说的那样)。

返回类RegistrationRequest的实例列表的函数示例:

import string
import typing
from datetime import datetime

from dataclasses import dataclass


@dataclass()
class RegistrationRequest:
    activity: string
    start_at: datetime


def registrations_requests() -> typing.List[RegistrationRequest]:
    return [
        RegistrationRequest('Zumba', datetime(2019, 6, 25, 12, 30, 0, 0)),
        RegistrationRequest('Zumba', datetime(2019, 6, 27, 19, 15, 0, 0)),
    ]


print('{0}'.format(registrations_requests()))

输出为:

[RegistrationRequest(activity='Zumba', start_at=datetime.datetime(2019, 6, 25, 12, 30)), RegistrationRequest(activity='Zumba', start_at=datetime.datetime(2019, 6, 27, 19, 15))]