PyTorch 的函数签名中的 \* 是什么意思?

舞会

例如,在randint签名中有一个\*as 4th 参数。这是什么意思 ?

torch.randint(low=0, high, size, \*, generator=None, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) → Tensor

我知道 Python 3.8 中引入的仅位置 args 和仅关键字 args 使用\and *但在这里我看到了\*

茉莉花

我很确定user2357112 支持 Monica是对的。为了确认这一点,我尝试寻找文档的来源,它是自动生成的我查看了实现,它在 C++中,其中函数签名的工作方式不同。我找到了类型注释生成代码

        'randint': ['def randint(low: _int, high: _int, size: _size, *,'
                    ' generator: Optional[Generator]=None, {}) -> Tensor: ...'
                    .format(FACTORY_PARAMS),
                    'def randint(high: _int, size: _size, *,'
                    ' generator: Optional[Generator]=None, {}) -> Tensor: ...'
                    .format(FACTORY_PARAMS)],

这表明评论者确实是对的,应该是*而不是\*

Python 中的位置参数用 表示/,而不是用表示\在 Python 的语法\中,仅在两个地方使用:作为字符串文字中的转义字符,以及在行尾作为显式的行继续标记。


至少自 2020 年 5 月以来,这似乎一直是一个问题,此后没有任何活动。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章