Python类型提示和`* args`

问题描述 投票:7回答:2

假设我有这样的功能:

def foo(*args):
    for x in args:
        print(x)

假设我想说args的所有元素都是int;从PEP 0484开始,表达它的正确方法是什么?我应该做类似的事情吗?

from typing import Tuple


def foo(*args: Tuple[int, ...]) -> None:
    for x in args:
        print(x)

或类似的东西

def foo(*args: int) -> None:
    for x in args:
        print(x)

或完全其他?

尤其是,我试图在PyCharm中有效地使用类型提示,而我想到的解决方案似乎都无法帮助PyCharm理解x应该是int

假设我有一个像这样的函数:def foo(* args):对于args中的x:print(x)并说我想说args的所有元素都是int;从...

python python-3.x types pycharm typehints
2个回答
4
投票

根据PEP-484


0
投票

您应该看一下文档字符串。 PyCharm允许您以docstrings定义参数,带有或不带有类型。如果定义类型,则提示将考虑参数的类型。

© www.soinside.com 2019 - 2024. All rights reserved.