cbe*_*der 5 python dynamic-typing
我开始学习Python,作为主要的Java开发人员,我遇到的最大问题是何时何时不使用类型检查.大多数人似乎都在说Python代码不需要进行类型检查,但是在我认为有必要时会有很多情况.例如,假设我需要使用方法参数来执行算术运算,为什么我不确定参数是数值数据类型?
此问题不仅限于功能.对于类变量,我也会遇到同样的思考过程.我应该或不应该使用属性(使用@property
)来检查类型而不是定期实现的类变量?
这是一种为我开展发展的新方式,所以我很感激帮助理解.
检查类型信息并不是Pythonic,而是使用鸭子打字:如果它看起来像鸭子,像鸭子一样走路,像鸭子一样嘎嘎叫,那么它就是鸭子.
def quack(duck):
duck.quack()
Run Code Online (Sandbox Code Playgroud)
只有duck
具有可调用的quack
attrubute 才会运行,否则会引发异常,否则调用者可以捕获该异常.