如果我的类型是函数,我可以在Python中使用什么类型提示?
我想在Python中使用类型提示,但在某些情况下,我不清楚参数的类型。。。函数是否有类型,或者它们是特殊情况。我想做如下工作: 伪代码:如果我的类型是函数,我可以在Python中使用什么类型提示?,python,python-3.x,types,Python,Python 3.x,Types,我想在Python中使用类型提示,但在某些情况下,我不清楚参数的类型。。。函数是否有类型,或者它们是特殊情况。我想做如下工作: 伪代码: def run_function(function_to_run: fn): function_to_run(data) 这可能吗?如果是,我应该使用什么类型 编辑: 我希望将函数与其他可调用函数(如类)区分开来。。。但也许这并不重要,而且过于谨慎。应该可以。实际上,您并不关心它是否是一个函数,它可以是一个类或某种类型的可调用实例。如文档中所述:您可以使
def run_function(function_to_run: fn):
function_to_run(data)
这可能吗?如果是,我应该使用什么类型
编辑:
我希望将函数与其他可调用函数(如类)区分开来。。。但也许这并不重要,而且过于谨慎。应该可以。实际上,您并不关心它是否是一个函数,它可以是一个类或某种类型的可调用实例。如文档中所述:您可以使用 例如,您可以这样使用它:
from typing import Callable
def run_function(function_to_run: Callable[[int], str]):
function_to_run(data)
如果
function\u to\u run
是一个从int
到str
的函数,而您几乎肯定不关心各种可调用类型之间的区别,那么如果您希望types
模块为不同类型的函数提供许多特定的名称,您可以强制执行此操作(其中一些你甚至不认为是不同的类型)。举几个例子:
和types.FunctionType
(相同基础类型的别名)types.LambdaType
和types.BuiltinMethodType
types.BuiltinFunctionType
types.MethodWrapperType
types.MethodDescriptorType
类型的实例
)?这是我试图自己回答的问题。我想我可能不在乎区别,只是我更喜欢更明确的类型。我可能只需要尝试Callable,看看是否遇到问题。