如果我在python中不使用__init__
方法,我的代码质量如何受到影响?一个简单的例子将不胜感激。
答案 0 :(得分:2)
简短回答;没有任何反应。
长答案;如果您有一个类B
,它继承自类A
,并且如果B
没有定义__init__
方法,那么父类(在这种情况下,{{1} }})A
被调用。
__init__
如果In [137]: class A:
...: def __init__(self):
...: print("In A")
...:
In [138]: class B(A): pass
In [139]: B()
In A
Out[139]: <__main__.B at 0x1230a5ac8>
没有前任,那么将调用全能的超类A
的{{1}},它什么都不做。
您可以通过查询dunder object
来查看类层次结构。
__init__
另请参阅Why do we use __init__ in Python classes?了解何时何地的使用情况。
答案 1 :(得分:1)
这不是质量问题,在python支持的Object-oriented-design
中,__init__
是在首先创建对象时提供数据的方式。在OOPS
中,这称为constructor
。换句话说,构造函数是一种准备有效对象的方法。
构建大型项目的设计模式依赖于python提供的构造函数。没有它,它们将无法运作,
,例如
您希望跟踪为类创建的每个对象,现在您需要一个在每次创建对象时执行的方法,因此构造函数。
构造函数的其他有用示例是假设您要为Bank创建customer
对象。现在,银行的客户必须拥有account number
,因此基本上您必须为银行的有效客户对象设置规则,因此构造函数。