gpt4 book ai didi

python - 如何使用 python 类型指定这种可变参数元组?

转载 作者:太空宇宙 更新时间:2023-11-04 02:05:27 25 4
gpt4 key购买 nike

我正在尝试这样做,但我不确定如何指定类型签名:

def initialize_signals(
self,
command: InitializeCommand,
initializers: Iterable[Union[
Tuple[SignalNode],
Tuple[SignalNode, Any, ...]
]]):
for x, *args in initializers:
potential_update = command.create_potential_update(x, *args)

最佳答案

目前还没有可以表示定长元组与变长元组相加的注解。

这是我用来确定 mypy 的推论将如何处理这样的事情的一些代码:

from typing import Tuple

x: Tuple[int, ...]
y = ('hi', *x)
z = (*x,)
reveal_type(y)
reveal_type(z)

和输出:

$ mypy t.py
t.py:6: error: Revealed type is 'builtins.tuple[builtins.object*]'
t.py:7: error: Revealed type is 'builtins.tuple[builtins.int*]'

尽管知道它是一个可变长度的 int 元组,但它会衰减为 object

您可能希望重构代码以使用 Tuple[SignalNode, Tuple[Any, ...]]

关于python - 如何使用 python 类型指定这种可变参数元组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54856277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com