class Car:
class Door:
def open(self):
print('Open the door')
class Wheel:
def run(self):
print('Car is running')
if __name__ == '__main__':
car = Car() #实例化外部类
backDoor = Car.Door() # 实例化内部类
wheel = car.Wheel() # 实例化内部类2
backDoor.open()
wheel.run() # 调用内部类的方法
- 内部类的优点:
- 类的逻辑分组:如果一个类只对另一个类作用,那么将它嵌入那个另一个类并将两者保持在一起是合乎逻辑的,嵌套这样的"帮助类"使得它们的包更加简化。
- 增加封装:考虑两个顶层类,A和B,其中B需要访问A的成员,否则会被声明为私有。通过将类B隐藏在类A中,A的成员可以被声明为私有,而B可以访问它们。此外,B本身也可以从外部世界隐藏起来。
- 更易读,可维护的代码:在顶级类中嵌套小类会使代码更接近于使用它的位置。