【发布时间】:2014-07-08 01:37:16
【问题描述】:
我目前正在学习一些经典的面向对象,并且读过一些书(现在不记得是哪一本了)
“构造函数的作用是确保(由构造函数)以有效状态返回新的类实例”
由于 python 使用鸭子类型,例如,我想知道如何防止我的对象在没有显式类型检查的情况下接收错误或无效的参数,以及是否会在程序中进一步引入无效实例的风险,可能导致错误的时间晚于预期。
【问题讨论】:
-
我认为这将被关闭,但是我的 2c 是它应该导致正确的初始状态......但是在 python 中,将它分配给一些类变量并引发是完全可以接受的当他们实际尝试使用类变量时出错...
-
@JoranBeasley 您说“完全可以接受”,但我想了解:基于什么可以接受?谢谢
-
基于大型、公开接受的图书馆的使用年龄......你真的已经找到了为什么这可能会被关闭的症结,它基本上归结为一个基于意见的问题
-
生成一个有效的对象几乎肯定意味着调用父类的构造函数,但是 Python 并没有强制执行。
标签: python constructor typechecking ooad duck-typing