Python 函数接口库?
Python Library for Function Interfaces?
我想知道是否存在用于强制执行函数接口的 Python libary/technique/"contracts"。类似于 ABC,但用于功能。
例如虚构语法的示例:
@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 模块会做类似的事情,但仅适用于 类。是否有等效的函数?
PyContract 似乎是您想要研究的库。
见https://pypi.python.org/pypi/PyContracts
另见
Tools for static type checking in Python
我想知道是否存在用于强制执行函数接口的 Python libary/technique/"contracts"。类似于 ABC,但用于功能。
例如虚构语法的示例:
@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 模块会做类似的事情,但仅适用于 类。是否有等效的函数?
PyContract 似乎是您想要研究的库。
见https://pypi.python.org/pypi/PyContracts
另见
Tools for static type checking in Python