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

PyCharm中numpy.arange为何存在两种不同的函数签名展示样式?

PyCharm中numpy.arange两种函数签名差异及参数报错原因

双签名的来源

PyCharm弹窗顶部展示的是从numpy内置的**类型提示存根文件(.pyi)**读取的静态声明,下方的签名是PyCharm解析函数的文档字符串(docstring)后提取的实际参数说明,和官方参数定义完全对齐。
numpy大量核心函数由C语言实现,Python层没有原生的函数定义,类型提示存根文件为了兼容不同numpy版本的参数差异,避免类型提示误报,就用了宽松的*args、**kwargs做通用声明,没有写死所有参数。

*args和**kwargs的实际含义

存根文件里的*args和**kwargs仅为兼容写法,不代表函数真的支持任意位置参数和关键字参数:

  • 实际运行时函数的参数校验由底层C代码执行,只会接收文档明确列出的参数
  • 日常开发时要以下方从docstring提取的参数签名为准,不要参考顶部存根文件的宽松声明

非法关键字参数报错的原因

你传入的blabla不属于arange支持的参数范围,底层C代码的严格校验逻辑会直接拦截不在白名单内的参数,抛出TypeError,这一校验逻辑和存根文件的宽松声明没有关联,属于运行时的强制校验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:15:03