用于函数接口的Python库?

时间:2017-12-20 20:23:30

标签: python interface abstract-class abc

我想知道是否存在用于实施功能接口/“合同”的现有Python库/技术。像ABC这样的东西,但功能。

E.g。一个带有伪造语法的例子:

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

其中

@declare_interface
def i_state_updater(position, state, forces):
    """
    :param position: ...
    :returns: ....
    """

因此,当我将此函数作为参数传递时,我可以验证它,例如

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模块执行类似的操作,但仅适用于类。是否存在函数的等价物?

1 个答案:

答案 0 :(得分:1)