# 内部类

> 原文： [https://pythonspot.com/inner-classes](https://pythonspot.com/inner-classes)

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

## 内部类的例子

我们创建一个具有一个内部类（`Head`）的类（`Human`）。创建一个实例，该实例调用内部类中的方法：

```py
#!/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()

```

输出：

```py
Guido
talking...

```

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

## 多个内部类

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

```py
#!/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())

```

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

[下载练习](https://pythonspot.com/download-oop-exercises/)