【发布时间】:2019-09-16 07:09:13
【问题描述】:
使用types.FunctionType 与typing.Callable 作为类型提示注释有什么缺点或好处?
考虑下面的代码...
import types
import typing
def functionA(func: types.FunctionType):
rt = func()
print(func.__name__)
return rt
def functionB(func: typing.Callable):
rt = func()
print(func.__name__)
return rt
我能看到的唯一区别是 Callable 可以是任何类型的可调用对象(函数、方法、类等),而 FunctionType 仅限于函数。
我忽略了什么吗?在某些情况下使用FunctionType 比使用Callable 有什么好处吗?
【问题讨论】:
-
你的功能需要什么?可调用对象,还是由函数定义创建的类型的实例?
-
声明任何符合您实际要求的类型。
标签: python python-3.x pycharm type-hinting