Python:打印的输入签名是什么?

Python:打印的输入签名是什么?,python,typing,Python,Typing,当定义为可调用参数时,print或类似函数的类型签名是什么,它接受任何类型的可变数量的参数 具体来说,output\u函数的声明是什么 def f(x: str, output_function=print): output_function(x) 更新:澄清为可调用参数。来自 也可以对任意参数列表进行类型注释,以便定义: def foo(*args: str, **kwds: int): ... 是可接受的,这意味着,例如,以下所有内容都表示具有有效参数类型的函数调用: foo('

当定义为可调用参数时,print或类似函数的类型签名是什么,它接受任何类型的可变数量的参数

具体来说,
output\u函数的声明是什么

def f(x: str, output_function=print):
    output_function(x)
更新:澄清为可调用参数。

来自

也可以对任意参数列表进行类型注释,以便定义:

def foo(*args: str, **kwds: int): ...
是可接受的,这意味着,例如,以下所有内容都表示具有有效参数类型的函数调用:

foo('a', 'b', 'c')
foo(x=1, y=2)
foo('', z=0)
因此,
print
将是:

from typing import Any, IO
def print(*args: Any, sep: str = ' ', \
          end: str = '\n', file: IO = sys.stdout, \
          flush: bool = False) -> None:
但是,我不认为您可以将此应用于
可调用的
。从用于键入的

没有表示可选参数或关键字参数的语法;此类函数类型很少用作回调类型
Callable[…,ReturnType]
(文字省略号)可用于键入一个包含任意数量参数的可调用项并返回
ReturnType


*args:Any
..?太好了!将其声明为可调用参数如何?我已经更新了这个问题,以澄清这正是我想要的。mypy对
x:Callable[…,None]=print
@MarkHarrison没有抱怨。据我所知,您无法明确指定这一点。表示“没有语法指示可选参数或关键字参数;此类函数类型很少用作回调类型。
Callable[…,ReturnType]
(文字省略号)可用于键入提示可调用的参数,并返回
ReturnType
”,或使用自定义的
类型。协议