为了账号安全,请及时绑定邮箱和手机立即绑定

如果我的类型是函数,我可以在 Python 中使用什么类型提示?

如果我的类型是函数,我可以在 Python 中使用什么类型提示?

LEATH 2022-01-18 17:35:16
我想在 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。


查看完整回答
反对 回复 2022-01-18
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

typing.Callable应该可以正常工作。你实际上并不关心它是一个特定的函数,它可能是一个类或某种可调用的实例。


查看完整回答
反对 回复 2022-01-18
?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

虽然您几乎可以肯定不关心各种可调用类型之间的区别,但如果您愿意,您可以强制执行该types模块为不同类型的函数提供了相当多的特定名称(其中一些您甚至可能不认为是不同的)类型)。仅举几个:

  • types.FunctionTypetypes.LambdaType(相同基础类型的别名)

  • types.BuiltinMethodType 和 types.BuiltinFunctionType

  • types.MethodWrapperType

  • types.MethodDescriptorType


查看完整回答
反对 回复 2022-01-18
  • 3 回答
  • 0 关注
  • 157 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信