我开始学习Python,作为一名主要的Java开发人员,我遇到的最大问题是何时何时不使用类型检查。大多数人似乎都在说Python代码不需要进行类型检查,但是在我认为有必要时会有很多情况。例如,假设我需要使用方法参数来执行算术运算,为什么我不能确保参数是数值数据类型?
此问题不仅限于功能。对于类变量,我也会遇到同样的思考过程。我应该或不应该使用属性(使用@property
)来检查类型而不是定期实现的类变量?
这是一种为我开展发展的新方式,所以我希望能帮助理解。
答案 0 :(得分:5)
它不是 Pythonic 来检查类型信息,而是使用duck typing:如果看起来像像鸭子一样,那么行走就像一只鸭子和 quacks 就像一只鸭子,然后 是一只鸭子。
duck
仅当quack
具有可调用的public class User extends ResourceSupport {
@JsonIgnore(false)
private Integer id;
private String mail;
private boolean enabled;
// getters and setters
}
attrubute时才会运行,否则会引发异常,否则调用者可以捕获该异常。
答案 1 :(得分:0)
简单的答案可能是在没有任何类型检查的情况下开始,看看会发生什么。你可能会发现 - 正如我17年前所做的那样令我惊讶的是 - 你需要它方式比你想象的要少。对于以前的记录来说,除了我开始阅读严肃的python应用程序代码和stdlib代码之外,你不可能想要写任何东西,除了快速的脚本和玩具程序而没有严格的类型检查并且失去了很多时间来对抗语言它只是没有。