物件導向程式設計(object oriented programming)
物件導向程式設計是一種程式設計方式,這種程式設計方式需要使用「物件」來實現
物件的特徵:
1.世間萬物皆物件
2.每個物件都是唯一的
3.物件具有屬性和行為
4.物件具有狀態
5.物件分為類物件和例項物件兩大類
類物件是具有相同屬性和行為的例項物件的抽象
類物件就是例項物件的模板,例項物件是由類物件建立出來的
此外,同乙個類物件的所有例項物件如果具有相同的屬性,表明它們屬性的含義是相同的
物件導向程式設計的大體步驟:
抽象出類物件
抽象出類物件的屬性
抽象出類物件的行為(方法)
根據類物件建立例項物件
通過例項物件訪問屬性和方法
定義類物件的語法格式
class 類名(object)
#屬性與方法
其中,1.類名由乙個或多個單詞組合而成,每個單詞的首字母大寫且其餘字母全部小寫,例如:someclass。2.(object)表示該類物件繼承自python內建的類物件object,python中所有的類物件都繼承自乙個統一的基類:object
初識類的方法:行為(方法)是類中特殊的函式。
貓具有的行為:跑,喵喵叫,吃東西
def run(self):
print("cat is running.")
def miao(self):
print("cat is miaoing.")
def eat(self):
print("cat is eatting.")
#初識屬性
#貓類具有的屬性:
1.品種
2.暱稱
3.年齡
4.健康狀況等
class cat(object):
def __init__(self,bread,name,age,health):
self.bread = bread
self.name = name
self.age = age
self.health = health
類的方法與函式的區別:
方法就是定義在類物件中的函式。方法與函式的區別在於:
1.定義方法時,方法的每乙個形參表示呼叫該方法的例項物件,
第乙個形參的名稱通常是self,也可以是其它名稱。
2.呼叫方法時,系統自動將呼叫該方法的例項物件作為實參傳遞給第乙個形參。
第乙個實參會傳遞給第二個形參,第二個形參會傳遞給第三個形參,依此類推
根據類物件建立例項物件的語法格式為:
類名([實參])
#根據類物件建立例項物件
cat = cat("波斯貓","喵喵",1,"很好")
print(cat.breed)
print(cat.name)
print(cat.age)
print(cat.health)
cat.run()
cat.miao()
cat.eat()
例項屬性
例項屬性指的是例項物件所繫結的屬性
繫結例項屬性給例項物件繫結屬性的方式由兩種:
1.在類物件內部(方法中)
語法格式:self.屬性名 = 屬性值
推薦在特殊方法init中進行繫結,這樣,在建立例項物件後就會自動呼叫特殊方法__init__ 對例項物件進行初始化,從而繫結例項屬性。如果在其他方法中進行繫結,可能需要手動呼叫方法後才會繫結。
2.在類物件外部
python是動態語言,所以,在例項物件建立後,可以對其動態地繫結屬性
語法格式:例項物件。屬性名 = 屬性值
如果指定名稱的例項屬性已經存在,則是對例項屬性進行修改
訪問例項屬性的方式有兩種:
1、在類物件的內部(方法中)
語法格式:self.屬性名
2、在類物件的外部
語法格式:例項物件.屬性名
之所以新增前提"self"或"例項物件",是為了表現例項屬性被哪個例項物件所繫結
class myclass(object):
def __init__(self):
self.ia1 = 18
def do_sth1(self):
#在類物件內部(方法中)訪問例項屬性
print(self.ia1)
def do_sth2(self):
print(self.ia2)
def do_another(self):
#在類物件內部(方法中)繫結例項屬性
self.ia2 = 56
def do_sth3(self):
print(self.ia3)
mc = myclass()
mc.do_sth1()
>>>18
mc.do_another()
mc.do_sth2()
>>>56
#在類物件的外部繫結例項屬性
mc.ia3 = 66
print(mc.ia3)
>>>66
mc2 = myclass()
print(mc2.ia3)
例項物件.dict
可以獲得該例項物件所繫結的所有屬性及其值的字典
mc.__dict__
>>>
mc2.__dict__
>>>
3.類物件屬性
類屬性類屬性指的是類物件所繫結的屬性
繫結類屬性(給類物件繫結屬性)的方式由兩種:
1、在類物件的內部(方法外)
語法格式:屬性名=屬性值
2.在類物件的外部
python是動態語言,所以,在類物件建立之後,可以對其動態地繫結屬性。
語法格式:類物件.屬性名 = 屬性值
如果指定名稱地類屬性已經存在,則是對類屬性進行修改
第十周周小結
2.本次工作任務 本週老師沒有明確的給每個團隊留這週的作業,因為每個團隊的專案進入到了開發階段,老師只是要求每個團隊每天必須有要有明確的任務,提交量和團隊內部每日例會總結上傳到碼雲倉庫,助教每天每天進入倉庫檢視,他們專案倉庫的提交結果並進行點評和打分。我負責的團隊 web5組,web8組,web9組...
第十周總結
這周一開始說的是要考試,但是最後又說等通知,所以就有時間複習了,要是真的這周考試那就涼涼了。之前學的有的忘了,有的是根本都不會,反正都得從頭開始看。這周講課的時候我看了看講課表,嗯,下下個星期就到我了。下個星期又要考試,所以說還是考試重要,講課先放到一邊,等考試過了再說,畢竟考的那兩門都挺難的。不過...
第十周題解
class solution else if p index p.length p.charat p index else if sstart 1 else s中的字元都判斷完畢,則認為s為空,此時需要p為空或者p中只剩下星號的時候,才能成功匹配。如果p中剩餘的都是 則可以移除剩餘的 while p...