Python 内部类

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

内部类的例子

我们用一个类(Human)创建一个内部类(Head)。

创建一个调用内部类中的方法的实例:

#!/usr/bin/env python
 
class Human:
 
 def __init__(self):
    self.name = 'Guido'
    self.head = self.Head()
 
 class Head:
    def talk(self):
    return 'talking...'
 
if __name__ == '__main__':
    guido = Human()
    print guido.name
    print guido.head.talk()

输出:

Guido
talking...

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

多个内部类

内部类的数量的数量没有限制,例如此代码也可以使用:

#!/usr/bin/env python
 
class Human:
 
  def __init__(self):
    self.name = 'Guido'
    self.head = self.Head()
    self.brain = self.Brain()
 
  class Head:
    def talk(self):
      return 'talking...'
 
  class Brain:
    def think(self):
      return 'thinking...'
 
if __name__ == '__main__':
  guido = Human()
  print guido.name
  print guido.head.talk()
  print guido.brain.think()

通过使用内部类,你可以使代码更加面向对象。单个对象可以包含多个子对象。我们可以使用它们为我们的程序添加更多结构。