鹅型
GooseTypes的Python项目详细描述
Goose Types是一个Python库,用于支持自定义 类型检查的方法。
goose类型是具有自定义方法的类,这些方法定义 isinstance()和issubclass()检查它们自己,以及 以及一些相关的注释和错误处理。换句话说,一个 goose类型是python的metaclass hooks for custom instance and subclass checks的前端。
与duck类型的关系
这与duck typing有关,甚至可以解释为 它的实现,但它有细微的不同。
与nominal或structural类型系统中的类型相反,duck 类型由选中的部分结构或行为定义 运行时。从这个意义上说,鹅的类型是一样的但是,duck输入法 通常与两种不同于 鹅打字。
duck类型的一种方法是应用eafp:假设输入 实现所需的结构和行为,并依赖于错误 处理(根据需要补充)不符合要求的输入。 对于简单的duck类型和松散的验证,这是一种很好的方法 需求,但对于需要严格检查复杂 类型描述、验证和错误处理代码可以是 笨重,乱扔东西,掩盖了它的本质 功能。
另一种方法是在 属性或方法的级别,有时与检查 参数的多样性。通过检查对象的属性, 可以检查接口条件的组合,例如 属性名、方法名和参数多重性,在 开始一项破坏性的或昂贵的任务。
与后一种方法一样,goose类型在 需要预先执行复杂的验证对于鹅型, 要从函数体提取到 goose类型的主体,留下对isinstance()或 issubclass()。从某种意义上说,这是运行时检查 理想的接口行为,这就像duck类型。然而,与 传统的鸭子打字“走路”和“嘎嘎”测试,可以使用 对于与 需要的,而不是乱扔那些只需要 调用类型检查。