Python 中的巢狀類| D棧
文章推薦指數: 80 %
Python 中的巢狀類. Python · Python Class. 創建時間: ...
Python貼士
Python中的條件賦值運算子
使用Python播放Mp3檔案
使用Python檢查作業系統
在Python中從字串中刪除逗號
Python中如何將位元組bytes轉換為整數int
如何將整型int轉換為位元組bytes
如何在Python中獲取和增加最大遞迴深度
如何建立和啟用Python虛擬執行環境virtualenv
reportthisad
貼士文章
Python貼士
Python中的巢狀類
類包含不同的資料成員和函式,並允許我們建立物件來訪問這些成員。
Python作為一種物件導向的程式語言,有很多這樣的不同類的物件。
在Python中,我們有一個重要的建構函式,叫做__init__,每次建立類的例項時都會呼叫它,我們還有self關鍵字來引用類的當前例項。
巢狀類(也叫內類)是在另一個類中定義的。
它在所有物件導向的程式語言中都是非常常用的,可以有很多好處。
它並不能提高執行時間,但可以通過將相關的類歸為一組來幫助程式的可讀性和維護,而且還可以將巢狀類隱藏起來,不讓外界看到。
下面的程式碼展示了一個非常簡單的巢狀類的結構。
classDept:
def__init__(self,dname):
self.dname=dname
classProf:
def__init__(self,pname):
self.pname=pname
math=Dept("Mathematics")
mathprof=Dept.Prof("Mark")
print(math.dname)
print(mathprof.pname)
輸出:
Mathematics
Mark
注意,我們不能直接訪問內部類。
我們使用outer.inner格式建立其物件。
我們可以訪問外類中的巢狀類,但不能反過來訪問。
要訪問外類中的巢狀類,我們可以使用outer.inner格式或self關鍵字。
在下面的程式碼中,我們對上述類做了一些改動,並使用父類訪問巢狀類的一個函式。
classDept:
def__init__(self,dname):
self.dname=dname
self.inner=self.Prof()
defouter_disp(self):
self.inner.inner_disp(self.dname)
classProf:
definner_disp(self,details):
print(details,"FromInnerClass")
math=Dept("Mathematics")
math.outer_disp()
輸出:
MathematicsFromInnerClass
在Python中,我們也可以有多個巢狀類。
這種情況稱為多巢狀類,有一個或多個內類。
也可以有一些情況,我們在一個巢狀類中有一個巢狀類,這種情況稱為多級巢狀類。
下面的程式碼展示了一個非常簡單的多級巢狀類的例子。
classDept:
def__init__(self,dname):
self.dname=dname
classProf:
def__init__(self,pname):
self.pname=pname
classCountry:
def__init__(self,cname):
self.cname=cname
math=Dept("Mathematics")
mathprof=Dept.Prof("Mark")
country=Dept.Prof.Country("UK")
print(math.dname,mathprof.pname,country.cname)
輸出:
MathematicsMarkUK
相關文章-PythonClass
Pythonnew關鍵字
Python中的類方法
Python中類建構函式的可選引數
在Python中使用getitem
Python中的巢狀字典Python中的異常訊息
reportthisad
x
延伸文章資訊
- 1Nested Classes in Python Explained with Examples
Let us try to get an overview of the nested class in python. A class defined in another class is ...
- 2Python Nested & Inner Classes - DataCamp
It is a class containing more than one inner class. You can have more than one inner class in a c...
- 39. Class(類別) — Python 3.10.7 說明文件
Class definition(類別定義)以命名空間展現了一些俐落的技巧,而你需要了解作用域和命名空間的運作才能完整理解正在發生的事情。順帶一提,關於這個主題的知識對任何進階 ...
- 4Python Classes and Objects [With Examples] - Programiz
Like function definitions begin with the def keyword in Python, class definitions begin with a cl...
- 5[Python物件導向]淺談Python類別(Class) - Learn Code With Mike
Python也提供了一個函式isinstance()來判斷類別(Class)與物件(Object)的關係,語法如下:. isinstance(object_name, class_name).