首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中,我应该如何注释返回ctypes数组的函数?

在Python中,我应该如何注释返回ctypes数组的函数?
EN

Stack Overflow用户
提问于 2019-01-04 06:03:51
回答 3查看 6.4K关注 0票数 5

考虑以下Python代码:

代码语言:javascript
复制
def foo(aqs : typing.List[int]) -> ??? :
    array_type = ctypes.c_int64 * len(aqs)
    ans = array_type(*aqs)
    return ans

这个函数的返回值的正确注释是什么?(代替???)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-01-04 06:10:49

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

代码语言:javascript
复制
def foo(aqs: List[int]) -> ctypes.Array:
    ...
票数 4
EN

Stack Overflow用户

发布于 2021-11-21 03:36:51

使用python的内置列表类型ListT

代码语言:javascript
复制
def foo(aqs : typing.List[int]) -> List[T]:
array_type = ctypes.c_int64 * len(aqs)
ans = array_type(*aqs)
return ans

将T替换为列表类型

票数 -1
EN

Stack Overflow用户

发布于 2019-06-25 01:47:38

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

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

代码语言:javascript
复制
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()))

输出为:

代码语言:javascript
复制
[RegistrationRequest(activity='Zumba', start_at=datetime.datetime(2019, 6, 25, 12, 30)), RegistrationRequest(activity='Zumba', start_at=datetime.datetime(2019, 6, 27, 19, 15))]
票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54030422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档