在python中实现更简单、更健壮的duck类型的实用框架
pyduck的Python项目详细描述
pyduck是用于更有效使用的python实用程序框架 语言的定义特征:duck typing。它增强了 具有几个有用特性的语言,这些特性提高了可读性 以及python代码的可靠性。
from pyduck import Interface, expects, Any, overload class Iterable(Interface): def __iter__(self): pass @expects(Iterable) def __iterable_as_json(value): json_list = map(as_json, value) return "[%s]" % str.join(",", json_list) @expects(basestring) def __string_as_json(value): return '"%s"' % str(value) @expects(Any) def __other_as_json(value): return str(value) as_json = overload(__iterable_as_json, __string_as_json, __other_as_json)
功能
- 接口不需要显式声明 (类似于Go语言)
- 自动检查函数参数的interface/type
- 基于接口/参数类型的函数重载
- 函数返回值的自动接口/类型检查
有关更多信息和文档,请参见 project’s webpage。