Python - 内部类


在 Python 中,在另一个类中定义的类称为内部类。有时内部类也称为嵌套类。如果实例化了内部类,则内部类的对象也可以被父类使用。内部类的对象成为外部类的属性之一。内部类自动继承外部类的属性,无需正式建立继承。

句法

class outer:
   def __init__(self):
      pass
   class inner:
      def __init__(self):
         pass

内部类可以让您对类进行分组。嵌套类的优点之一是可以很容易地理解哪些类是相关的。内部类具有局部作用域。它充当外部类的属性之一。

例子

在下面的代码中,我们将学生作为外部类,将科目作为内部类。Student 的 __init__() 构造函数初始化 name 属性和科目类的实例。另一方面,内部主体类的构造函数初始化两个实例变量sub1、sub2。

外部类的show()方法用已实例化的对象调用内部类的方法。

class student:
   def __init__(self):
      self.name = "Ashish"
      self.subs = self.subjects()
      return
   def show(self):
      print ("Name:", self.name)
      self.subs.display()
   class subjects:
      def __init__(self):
         self.sub1 = "Phy"
         self.sub2 = "Che"
         return
      def display(self):
         print ("Subjects:",self.sub1, self.sub2)
         
s1 = student()
s1.show()

当您执行此代码时,它将产生以下输出-

Name: Ashish
Subjects: Phy Che

很可能独立声明外部类的对象,并使其调用自己的display()方法。

sub = student().subjects().display()

它将列出主题。