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()
通過使用內部類,你可以使程式碼更加物件導向。單個物件可以包含多個子物件。我們可以使用它們為我們的程式新增更多結構。