原文: https://pythonbasics.org/constructor/

构造函数是在创建对象时调用的方法。 此方法在类中定义,可用于初始化基本变量。

如果创建四个对象,则类构造函数将被调用四次。 每个类都有一个构造函数,但是不需要显式定义它。

示例

构造函数

每次创建对象时,都会调用一个方法。 该方法称为构造函数

构造函数是使用函数__init__创建的。 作为参数,我们编写了self关键字,它引用了自身(对象)。 从视觉上看,该过程是:

构造函数 - 图1

在构造函数内部,我们初始化两个变量:腿和手臂。 有时,在面向对象编程的上下文中,变量被称为属性。 我们创建一个对象(bob),仅通过创建它,即可初始化其变量。

  1. class Human:
  2. def __init__(self):
  3. self.legs = 2
  4. self.arms = 2
  5. bob = Human()
  6. print(bob.legs)

现在,新创建的对象已设置了变量,而无需手动定义它们。 您可以创建数十或数百个对象,而不必每次都设置值。

python __init__

函数__init__(self)将构建您的对象。 它不仅是您可以在此处设置的变量,还可以调用类方法。 初始化对象所需的一切。

假设您有一个“飞机”类,该飞机一经创建便应开始飞行。 起飞涉及许多步骤:加速,更换襟翼,关闭车轮等。

可以在方法中定义默认操作。 这些方法可以在构造函数中调用。

  1. class Plane:
  2. def __init__(self):
  3. self.wings = 2
  4. # fly
  5. self.drive()
  6. self.flaps()
  7. self.wheels()
  8. def drive(self):
  9. print('Accelerating')
  10. def flaps(self):
  11. print('Changing flaps')
  12. def wheels(self):
  13. print('Closing wheels')
  14. ba = Plane()

总结一下:如果创建对象,则会调用构造函数。 在构造函数中,您可以设置变量和调用方法。

默认值

一个类的构造函数是唯一的:从不同的类初始化对象将调用不同的构造函数。

可以在构造函数中设置新创建对象的默认值。

下面的示例显示了两个带有构造函数的类。 然后创建两个对象,但调用不同的构造函数。

  1. class Bug:
  2. def __init__(self):
  3. self.wings = 4
  4. class Human:
  5. def __init__(self):
  6. self.legs = 2
  7. self.arms = 2
  8. bob = Human()
  9. tom = Bug()
  10. print(tom.wings)
  11. print(bob.arms)

但是从一个类创建多个对象将调用相同的构造函数。

练习

请尝试以下练习:

  1. 制作两个其他对象
  2. 添加另一个变量并将其初始化

下载答案