Python函数指针的类型

对于 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)

什么必须放在?????要明确这里需要一个函数指针?我试过函数,因为类型(回调)是< class'function'>,但是没有定义关键字函数.

我会使用 types.FunctionType来表示一个函数:

>>> import types
>>> types.FunctionType
<class 'function'>
>>>
>>> def func():
...     pass
...
>>> type(func)
<class 'function'>
>>> isinstance(func, types.FunctionType)
True
>>>

您也可以使用字符串文字,例如’function’,但看起来您想要一个实际的类型对象.

相关文章
相关标签/搜索