Python 代码中的三个点 (...) 是什么意思?在哪里可以看到完整的代码?

Sai*_*Sai 5 python python-3.x

这是Python中模块中的atan和函数的代码。他们的身体由三个点( )组成。许多内置函数也执行相同的操作。这是什么意思?我在哪里可以看到全身而不是三个点?tanmath...

def tan(__x: _SupportsFloatOrIndex) ->float: ...

def atan(__x: _SupportsFloatOrIndex) ->float: ...
Run Code Online (Sandbox Code Playgroud)

Sy *_*Ker 9

这是省略号,它有很多含义,但又没有任何含义。让我解释;

它是一个没有方法的“空”单例对象,其解释完全取决于实现该__getitem__函数并在那里看到省略号对象的任何内容。

  • 它可以用作替代pass或尚未实现的代码;
def my_function(arg): 
    ...
Run Code Online (Sandbox Code Playgroud)
  • 当使用类型模块(用于类型提示)时,它用于向静态类型检查器表示某些类型。
def partial(func: Callable[..., str], *args) -> Callable[..., str]:
    # code
Run Code Online (Sandbox Code Playgroud)
  • 在切片语法中表示剩余维度的完整切片;
import numpy as np
>>>   
>>> array = np.random.rand(2, 2, 2, 2)
>>> print(array[..., 0])

[[[0.03265588 0.85912865]
  [0.45491733 0.3654667 ]]

 [[0.58577745 0.11642329]
  [0.88552571 0.69755581]]]
Run Code Online (Sandbox Code Playgroud)

非常感谢你提出这个问题,我今天在Python中学到了一些新东西。


小智 6

看来你深入math图书馆了。

实际上,您引用的文件是用 C 编写的 Python 模块。为了向该文件添加类型提示(这是用 C 编写的“扩展模块”),类型提示被添加到“存根”中" 扩展名为 .pyi 的文件。

类型提示通过存根文件 *.pyi 添加。

这里的省略号 (...) 是语法的一部分,因此下面的代码块真正显示了完整的文件内容。

这里有详细的解释:What is the use of Stub files (.pyi ) in python?