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()

通過使用內部類,你可以使程式碼更加物件導向。單個物件可以包含多個子物件。我們可以使用它們為我們的程式新增更多結構。