我有一个接受回调的函数。是否有标准方法来记录此参数的类型?
def example(callback):
"""Example function.
Parameters
----------
callback : type
Description of `callback`.
"""
print(callback(3, 14))
答案 0 :(得分:0)
在制定问题时找到答案,但问题本身并未在Google上给出任何结果。
PEP-0484在python中引入了类型注释。例如,采用两个整数并返回一个字符串的回调函数的类型是:
from typing import Callable
Callable[[int, int], str]
答案 1 :(得分:0)
我需要类似的东西,尽管我认为回调应该始终是一个函数,但AFAIK无法指定函数的类型,我一直在重复使用具有相同参数的回调来做不同的事情,所以我想到了
import abc
class BaseCallback(metaclass=abc.ABCMeta):
def __init__(self, param: int):
self.param = param
self.do_things()
@abc.abstractmethod
def do_things(self) -> int:
raise NotImplementedError
class MyCallback(BaseCallback):
def do_things(self):
return self.param * 2
def func(callback: BaseCallback): # type of callback specified
callback()
func(callback=MyCallback)
您不需要在init中运行do_things
方法(这很丑),这取决于您对在何处/何时运行回调有足够的能力。