每日一語:每一次相遇,都是靈魂在共鳴!
小亮的部落格:
——2019.5.19於北洋
在類的內部,使用 def 關鍵字來定義乙個方法,與一般函式定義不同,類方法必須包含引數 self, 且為第乙個引數,self 代表的是類的例項。
#!/usr/bin/python3
#類定義
class
people
:#定義基本屬性
name =
'' age =
0#定義私有屬性,私有屬性在類外部無法直接進行訪問
__weight =
0#定義構造方法
def__init__
(self,n,a,w)
: self.name = n
self.age = a
self.__weight = w
defspeak
(self)
:print
("%s 說: 我 %d 歲。"
%(self.name,self.age)
)# 例項化類
p = people(
'runoob',10
,30)p.speak(
)
執行以上程式輸出結果為:runoob 說: 我 10 歲。
python 同樣支援類的繼承,如果一種語言不支援繼承,類就沒有什麼意義。派生類的定義如下所示:class
derivedclassname
(baseclassname1)
:1>..
.
需要注意圓括號中基類的順序,若是基類中有相同的方法名,而在子類使用時未指定,python從左至右搜尋,即方法在子類中未找到時,從左到右查詢基類中是否包含方法。baseclassname(示例中的基類名)必須與派生類定義在乙個作用域內。除了類,還可以用表示式,基類定義在另乙個模組中時這一點非常有用:class derivedclassname(modname.baseclassname):
#!/usr/bin/python3
#類定義
class
people
:#定義基本屬性
name =
'' age =
0#定義私有屬性,私有屬性在類外部無法直接進行訪問
__weight =
0#定義構造方法
def__init__
(self,n,a,w)
: self.name = n
self.age = a
self.__weight = w
defspeak
(self)
:print
("%s 說: 我 %d 歲。"
%(self.name,self.age)
)#單繼承示例
class
student
(people)
: grade =
''def
__init__
(self,n,a,w,g)
:#呼叫父類的構函
people.__init__(self,n,a,w)
self.grade = g
#覆寫父類的方法
defspeak
(self)
:print
("%s 說: 我 %d 歲了,我在讀 %d 年級"
%(self.name,self.age,self.grade))
s = student(
'ken',10
,60,3
)s.speak(
)
執行以上程式輸出結果為:ken 說: 我 10 歲了,我在讀 3 年級
python同樣有限的支援多繼承形式。多繼承的類定義形如下例:class
derivedclassname
(base1, base2, base3)
:1>..
.
需要注意圓括號中父類的順序,若是父類中有相同的方法名,而在子類使用時未指定,python從左至右搜尋。即方法在子類中未找到時,從左到右查詢父類中是否包含方法。#!/usr/bin/python3
#類定義
class
people
:#定義基本屬性
name =
'' age =
0#定義私有屬性,私有屬性在類外部無法直接進行訪問
__weight =
0#定義構造方法
def__init__
(self,n,a,w)
: self.name = n
self.age = a
self.__weight = w
defspeak
(self)
:print
("%s 說: 我 %d 歲。"
%(self.name,self.age)
)#單繼承示例
class
student
(people)
: grade =
''def
__init__
(self,n,a,w,g)
:#呼叫父類的構函
people.__init__(self,n,a,w)
self.grade = g
#覆寫父類的方法
defspeak
(self)
:print
("%s 說: 我 %d 歲了,我在讀 %d 年級"
%(self.name,self.age,self.grade)
)#另乙個類,多重繼承之前的準備
class
speaker()
: topic =
'' name =
''def
__init__
(self,n,t)
: self.name = n
self.topic = t
defspeak
(self)
:print
("我叫 %s,我是乙個演說家,我演講的主題是 %s"
%(self.name,self.topic)
)#多重繼承
class
sample
(speaker,student)
: a =
''def
__init__
(self,n,a,w,g,t)
: student.__init__(self,n,a,w,g)
speaker.__init__(self,n,t)
test = sample(
"tim",25
,80,4
,"python"
)test.speak(
)#方法名同,預設呼叫的是在括號中排前地父類的方法
執行以上程式輸出結果為:我叫 tim,我是乙個演說家,我演講的主題是 python
python同樣有限的支援多繼承形式。多繼承的類定義形如下例:#!/usr/bin/python3
class
parent
:# 定義父類
defmymethod
(self)
:print
('呼叫父類方法'
)class
child
(parent)
:# 定義子類
defmymethod
(self)
:print
('呼叫子類方法')
c = child(
)# 子類例項
c.mymethod(
)# 子類呼叫重寫方法
super
(child,c)
.mymethod(
)#用子類物件呼叫父類已被覆蓋的方法
super() 函式是用於呼叫父類(超類)的乙個方法。執行以上程式輸出結果為:
呼叫子類方法
呼叫父類方法
Python class類轉字典
有時候會需要從包裝的類裡面取出需要的資料,但有不能直接取出來 可以通過如下 把class轉換成字典 將class轉dict,以 開頭的也要 defprops with obj pr for name in dir obj value getattr obj,name ifnot name.start...
Python class 類 裝飾器
class father def init self,name self.name name print name s self.name defgetname self return father self.name class son father def getname self return...
二類查詢(中興筆試)
乙個經銷商將能量飲科以34整司罐的形式配送給客戶,其中每個客戶都有乙個與其相關的id。初始狀態下,每位商戶擁有的飲料數量均為0他根據飲料的需求配送飲料,他開發了個處理商店所有交易查詢的系統。該系統將處理兩種型別的查詢,即查詢1和查詢2。查詢1更新客戶購買的飲料數量,如果已經有給定id的條目,則通過傳...