函数接口的Python库?

函数接口的Python库?,python,interface,abstract-class,abc,Python,Interface,Abstract Class,Abc,我想知道是否有一种现有的Python库/技术用于强制执行函数接口/“契约”。类似于ABC,但用于函数 例如,使用组合语法的示例: @implements(i_state_updater) def my_update(position, state, forces): ... return new_position, new_state 在哪里 所以当我将这个函数作为参数传递时,我可以验证它,例如 def compute_trajectory(update_func, n_st

我想知道是否有一种现有的Python库/技术用于强制执行函数接口/“契约”。类似于ABC,但用于函数

例如,使用组合语法的示例:

@implements(i_state_updater)
def my_update(position, state, forces):
    ... 
    return new_position, new_state
在哪里

所以当我将这个函数作为参数传递时,我可以验证它,例如

def compute_trajectory(update_func, n_steps, initial_state):
    """
    :param update_func: An i_state_updater
    ...
    """
    assert update_func.implements(i_state_updater)

Python现有的abc模块执行类似的操作,但只针对类。有没有类似的函数?

PyContract看起来像是一个你想要研究的库

另见


是的!这正是我一直在寻找的——不知何故,我的搜索以前没有找到它。谢谢
def compute_trajectory(update_func, n_steps, initial_state):
    """
    :param update_func: An i_state_updater
    ...
    """
    assert update_func.implements(i_state_updater)