Skip to content

Latest commit

 

History

History
73 lines (48 loc) · 1.75 KB

27.md

File metadata and controls

73 lines (48 loc) · 1.75 KB

内部类

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

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

内部类的例子

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

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

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

下载练习