在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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java:如何使用另一个类中的对象   如何在Java中迭代旁遮普语(阿拉伯语)?   类Java嵌套ArrayList返回对象   java正则表达式以匹配“:”之后包含的字符串   java为什么main()很好地显示“Lukaku”并包含_names()返回null?   java嵌套循环,无法理解如何编写此代码   java使用maven动物嗅探器插件检查自己的API   java上传的文件创建保存以备将来在GWT服务器端使用   java转换为Dalvik格式失败65536限制   Java后端的javascript最佳RIA工具   amazon web服务如何将tar文件从amazonS3 bucket提取到Java中的另一个s3   java如何在hibernate搜索中实现对int值的搜索?   使用Maven初始化引导层JavaFX时发生java错误   java Google登录API例外:10:   java Glassfish 3.1.2加载本机库(.dll)   java在join操作中使用TumblingWindow,但没有将任何元素传输到my JoinFunction   IBatis+Java:检索HashMap   多线程java与scala在单独线程上读取文件