原文: https://pythonspot.com/inner-classes

内部类嵌套类完全是在另一个类的主体内定义的。 如果使用类创建对象,则可以使用根类内的对象。 一个类可以具有多个内部类,但是通常避免使用内部类。

内部类的例子

我们创建一个具有一个内部类(Head)的类(Human)。创建一个实例,该实例调用内部类中的方法:

  1. #!/usr/bin/env python
  2. class Human:
  3. def __init__(self):
  4. self.name = 'Guido'
  5. self.head = self.Head()
  6. class Head:
  7. def talk(self):
  8. return 'talking...'
  9. if __name__ == '__main__':
  10. guido = Human()
  11. print guido.name
  12. print guido.head.talk()

输出:

  1. Guido
  2. talking...

在上面的程序中,我们有内部类Head(),它具有自己的方法。内部类可以同时具有方法和变量。在此示例中,类Human的构造函数(__init__)创建了一个新的head对象。

多个内部类

您绝不限于内部类的数量,例如,以下代码也可以使用:

  1. #!/usr/bin/env python
  2. class Human:
  3. def __init__(self):
  4. self.name = 'Guido'
  5. self.head = self.Head()
  6. self.brain = self.Brain()
  7. class Head:
  8. def talk(self):
  9. return 'talking...'
  10. class Brain:
  11. def think(self):
  12. return 'thinking...'
  13. if __name__ == '__main__':
  14. guido = Human()
  15. print(guido.name)
  16. print(guido.head.talk())
  17. print(guido.brain.think())

通过使用内部类,您可以使代码更加面向对象。 一个对象可以容纳多个子对象。 我们可以使用它们为程序添加更多结构。

下载练习