Python 不鼓励检查类型。但在许多情况下这可能很有用:
检查构造函数参数。例如检查敌人的布尔值、字符串、字典等。如果我不这样做并将对象的成员设置为参数,稍后会导致问题。
检查函数参数。
在属性中。如果有人设置了错误的值或不同的类型,我应该快速响应。
答案几乎总是“不”。 Python、Ruby 和其他一些语言的总体思想我们称为“鸭子打字 http://en.wikipedia.org/wiki/Duck_typing”。你不应该关心某物是什么,只关心它是如何工作的。换句话说,“如果你想要的只是嘎嘎叫的东西,你不需要检查它是否真的是一只鸭子。”
在现实生活中,进行所有这些类型检查的问题是无法用替代实现替换输入。您可以检查 dict,但我可能想传递一些不是 dict 但实现了 dict API 的内容。
类型检查仅检查代码中许多可能的错误之一。例如,它不包括范围检查(至少在 Python 中不包括)。对需要进行类型检查的断言的现代回应是,开发单元测试更有效,不仅确保类型正确,而且确保功能正确。
另一种观点是,您应该像对待同意的成年人一样对待您的 API 用户,并相信他们能够正确使用 API。当然,有时输入检查很有帮助,但这并不像您想象的那么常见。一个例子是来自不受信任来源的输入,例如来自公共网络的输入。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)