You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

问询Python函数中*与省略号的含义及PyTorch对应函数源码查看方法

语法含义解释

1. 函数参数中的*

这个是Python的关键字-only参数分隔符,作用是强制要求*之后的所有参数,在调用函数时必须以关键字参数的形式传参,不能使用位置参数传参。
举个实际调用的例子,你提到的round函数只能按以下规则调用:

out_tensor = torch.randn(3)
a = torch.tensor(1.2)
# 正确写法,out必须显式指定参数名
torch.round(a, out=out_tensor)

如果写成torch.round(a, out_tensor)就会触发语法错误,该设计可以避免参数位置传错的问题。

2. 函数末尾的...

这个写法通常出现在PyTorch的类型桩文件(.pyi后缀)中,这类文件只用来声明函数的类型签名(包括参数类型、返回值类型),不会存放具体实现逻辑。
另外PyTorch大量核心算子是用C实现的,Python层面只暴露绑定后的接口,所以接口定义处也会用...代替具体函数体,说明实现在底层C代码中。

查看函数完整实现的方法
  • 如果是Python层实现的工具函数,可以直接用Python内置的inspect模块获取源码,示例代码:
    import inspect
    import torch
    # 传入你要查询的函数即可
    print(inspect.getsource(torch.xxx))
    
  • 如果是C实现的核心算子(调用inspect报错的基本都属于这类),可以去PyTorch官方GitHub仓库对应版本的代码中查找:
    大部分算子的实现都存放在aten/src/ATen/native目录下,按算子功能分类存放;Python和C
    的绑定逻辑可以在torch/csrc目录下搜索对应函数名查找。

内容的提问来源于stack exchange,提问作者W Dayu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 15:06:07