Python:打印的输入签名是什么?
当定义为可调用参数时,print或类似函数的类型签名是什么,它接受任何类型的可变数量的参数 具体来说,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('
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
”,或使用自定义的类型。协议
。