对于 Python 3,它对我来说是一个很好的实践,提示函数参数和返回类型的数据类型。例如:
def icecream_factory(taste: str='Banana') -> Ice:
ice = Ice(taste)
ice.add_cream()
return ice
这适用于所有简单的数据类型和类。但是现在我需要将它与“函数指针”一起使用:
class NotificationRegister:
def __init__(self):
self.__function_list = list()
""":type: list[?????]"""
def register(self, function_pointer: ?????) -> None:
self.__function_list.append(function_pointer)
def callback():
pass
notification_register = NotificationRegister()
notification_register.register(callback)
必须在
?????
中放置什么才能明确此处需要函数指针?我试过 function
,因为 type(callback)
是 <class 'function'>
,但是没有定义关键字 function
。 最佳答案
我会用 types.FunctionType
来表示一个函数:
>>> import types
>>> types.FunctionType
<class 'function'>
>>>
>>> def func():
... pass
...
>>> type(func)
<class 'function'>
>>> isinstance(func, types.FunctionType)
True
>>>
您也可以使用字符串文字,例如
'function'
,但看起来您想要一个实际的类型对象。