我想在 Python 中使用类型提示,但在某些情况下,我的参数类型不清楚……函数是否有类型,或者它们是特殊情况。我想做类似以下的事情:伪代码:def run_function(function_to_run: fn):
function_to_run(data)这可能吗?如果是这样,我应该使用什么类型?编辑:我希望将函数与其他可调用对象(例如类)区分开来......但这可能并不重要并且过于谨慎。
3 回答
慕的地10843
TA贡献1785条经验 获得超8个赞
如文档中所述:您可以使用Callable.
例如,您可以这样使用它:
from typing import Callable
def run_function(function_to_run: Callable[[int], str]):
function_to_run(data)
iffunction_to_run是从int到的函数str。
侃侃尔雅
TA贡献1801条经验 获得超16个赞
虽然您几乎可以肯定不关心各种可调用类型之间的区别,但如果您愿意,您可以强制执行该types
模块为不同类型的函数提供了相当多的特定名称(其中一些您甚至可能不认为是不同的)类型)。仅举几个:
types.FunctionType
和types.LambdaType
(相同基础类型的别名)types.BuiltinMethodType
和types.BuiltinFunctionType
types.MethodWrapperType
types.MethodDescriptorType
添加回答
举报
0/150
提交
取消