欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python基礎(chǔ)之面向?qū)ο?14)

系統(tǒng) 1632 0

裝飾器是什么?
定義:裝飾器是用于拓展原函數(shù)功能的一種語法,返回新函數(shù)替換舊函數(shù)
作用:在不更改原函數(shù)代碼的前提下,拓展出新功能
@語法:加上@符 系統(tǒng)會自動把下面的函數(shù)當(dāng)成參數(shù)傳遞到裝飾器中,從下到上.
@符又被稱作語法糖
裝飾器:

1.普通裝飾器

def decor(func):
def inner():
print(“財(cái)務(wù)拿錢買貨”)
func()
print(“賣貨的錢還回來”)
return inner
@decor #效果等同于sell=decor(sell)
def sell():
print(“買到貨出去賣”)
sell()

2.裝飾帶有參數(shù)的函數(shù)
def decor(func):
def inner(*val1,**val2):
print(“財(cái)務(wù)拿錢買貨”)
func(*val1,**val2)
print(“賣貨的錢還回來”)
return inner
@decor
def sell(*val1,**val2):
for i,j in val2.items():
print(“賣的貨里面有{}”.format(val1),‘它們的類型有{}’.format(i),“價(jià)格在{}”.format(j))
sell(“布娃娃”,“洋娃娃”,“金剛芭比”,可愛型=“100元”,冷酷型=“200元”)

3.裝飾帶有返回值的函數(shù)

def decor(func):
def inner():
print(“財(cái)務(wù)拿錢買貨”)
res=func()#接收sell函數(shù)里的返回值"賣布娃娃"
print(“賣貨的錢還回來”)
return res #將"賣布娃娃""作為返回值
return inner

@decor #效果等同于sell=decor(sell)
def sell():
print(“買到貨出去賣”)
return “賣布娃娃”
res=sell()
print(res)#打印返回值

4.帶有參數(shù)的裝飾器(不同函數(shù)不同效果)

def out(name): # 這個(gè)只是一個(gè)接收name參數(shù)的殼子,因?yàn)閐ecor(func)已經(jīng)有一個(gè)參數(shù)了
def decor(func):
def inner():
func()
if name == ‘屌絲’:
print(“老娘沒空鳥你”)
if name == “富帥”:
print(“在的呢,有空有空”)
return inner
return decor
@out(“屌絲”)
def diaosi():
print(“女神有空嗎”)
diaosi()

@out(“富帥”)
def fushuai():
print(“有空嗎”)
fushuai()

多個(gè)裝飾器同時(shí)出現(xiàn)的情況,執(zhí)行順序是什么樣的呢?
多個(gè)裝飾器的調(diào)用順序是自下往上,但是運(yùn)行時(shí)的執(zhí)行順序是自上往下

def decor1(func):
def inner():
print(“一號技師”)
func()
print(“一號技師結(jié)束”)
return inner

def decor2(func):
def inner():
print(“二號技師”)
func()
print(“二號技師結(jié)束”)
return inner
@decor1
@decor2
def mashaji():
print(“馬殺雞真舒服”)
mashaji()

#結(jié)果為
一號技師
二號技師
馬殺雞真舒服
二號技師結(jié)束
一號技師結(jié)束
#自下而上,mashaji函數(shù)先被decor2裝飾器裝飾成新的函數(shù)即(decor2中的inner函數(shù)),新的函數(shù)再被傳到decor1裝飾器裝飾成更新的函數(shù).

def decor1(func):
def inner(func2):
print(“一號技師”)
res=func(func2)
print(“一號技師結(jié)束”)
return(res)
return inner
@decor1
def decor2(func):
print(“一號技師技術(shù)真好”)
def inner2():
print(“二號技師”)
func()
print(“二號技師結(jié)束”)
return inner2
@decor2
def mashaji():
print(“馬殺雞真舒服”)
mashaji()

#結(jié)果
一號技師
一號技師技術(shù)真好
一號技師結(jié)束
二號技師
馬殺雞真舒服
二號技師結(jié)束
#1.代碼怎么樣不報(bào)錯(cuò):decor2先被decor1修飾器修飾,decor2(func)作為參數(shù)傳入decor1的func中,將decor2(func)視作普通的有參數(shù)的被裝飾函數(shù),則decor1中的inner()和func()需要補(bǔ)對應(yīng)的參數(shù)進(jìn)去.又decor2(func)在decor1的func(func2)中被執(zhí)行,返回值為inner2,在decor1中用res去接收返回值并作為decor1中的返回值.
2.執(zhí)行順序問題,因decor2調(diào)入decor1時(shí)inner2只是一個(gè)返回值未輸出.所以只有等mashaji()調(diào)入decor2時(shí)才會輸出.

5.把類作為裝飾器(后面講)

6.裝飾類(后面講)
面向過程: Procedure Oriented
一種以過程為中心的編程思想。
就是分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實(shí)現(xiàn),使用的時(shí)候一個(gè)一個(gè)依次調(diào)用就可以了。
面向?qū)ο螅篛bject Oriented 簡稱OO
一種以事物為中心的編程思想。
是把構(gòu)成問題事務(wù)分解成各個(gè)對象,建立對象的目的不是為了完成一個(gè)步驟,而是為了描敘某個(gè)事物在整個(gè)解決問題的步驟中的行為。
換句話來說,面向?qū)ο笫且怨δ軄韯澐謫栴},而不是步驟。

面向?qū)ο蟮膶W(xué)習(xí): 面向?qū)ο蟮恼Z法的學(xué)習(xí) 面對對象的思想的學(xué)習(xí)

面向?qū)ο蟮膬?yōu)勢: 能夠?qū)崿F(xiàn)良好程序結(jié)構(gòu),方便程序的開發(fā)和管理維護(hù)!

效率:

運(yùn)行效率:計(jì)算機(jī) 面向?qū)ο笮什蝗邕^程化的快
開發(fā)效率:程序員 面向?qū)ο蟊冗^程話開發(fā)要方便的多。 方便了程序員!

面向?qū)ο蠛兔孢^程開發(fā)的區(qū)別:
【面向過程】:
吃飯 -> 自己做飯吃(調(diào)用做飯函數(shù))
喝水 -> 自己倒水喝(調(diào)用了倒水函數(shù))
洗衣服-> 自己洗衣服(調(diào)用了洗衣服函數(shù))
睡覺 -> 自己拿睡衣(調(diào)用了拿睡衣的函數(shù))

            
              去公司-> 走路去(調(diào)用走路函數(shù))
去海南-> 走路去(調(diào)用走路函數(shù))
送禮  -> 帶著禮物走去(調(diào)用走路運(yùn)貨函數(shù))
....

            
          

【面向?qū)ο蟆浚?
女朋友:
做飯功能
倒水功能
洗衣服功能
拿睡衣功能

            
              吃飯了->  女朋友,你給我做飯,謝謝
渴了  ->  女朋友,你給我倒一杯水,謝謝
洗衣服->  女朋友,幫我把衣服洗一洗
....

汽車:
    運(yùn)動功能
    運(yùn)貨功能
    兜風(fēng)功能
    ...

            
          

去公司-> 汽車的運(yùn)動功能…
去海南-> 汽車的運(yùn)動功能或者兜風(fēng)功能
送禮 -> 汽車的運(yùn)貨功能

面向?qū)ο蟮慕Y(jié)構(gòu)特色:
高內(nèi)聚(具有關(guān)聯(lián)的功能,總結(jié)在一個(gè)結(jié)構(gòu)當(dāng)中)
低耦合(沒有關(guān)聯(lián)的功能,放在不同的結(jié)構(gòu)中)

面向的對象的單詞:
OO 面向?qū)ο?
OOP 面向?qū)ο蟮拈_發(fā) Object Oriented Programming
OOA 面向?qū)ο蟮姆治?Object Oriented Analysis
OOD 面向?qū)ο蟮脑O(shè)計(jì) Object Oriented Design
OOI 面向?qū)ο蟮膶?shí)現(xiàn) Object Oriented Implementation

OOA->OOD->OOI 面向?qū)ο蟪绦蜷_發(fā)的順序(OOP)

學(xué)習(xí)面向?qū)ο箅x不開兩個(gè)概念:類和對象

類:【類就是抽象的概念而已,(唯心主義)】
男人就是一個(gè)類
女人也是一個(gè)類
人類也是一個(gè)類
鳥類也是一個(gè)類
瓶子也是一個(gè)類
凳子也是一個(gè)類

以上內(nèi)容都是一個(gè)簡單的名詞概念(語文)
【1.類是一個(gè)實(shí)物特征的集合,是一個(gè)抽象的名詞概念。】

開車是一個(gè)類 (打火,掛擋,離合,加油門,走你~)
打人也是一個(gè)類 (脫掉上衣,拿起磚頭,扔,趕快跑~)
做蛋糕是一個(gè)類 (和面,發(fā)酵,烘烤,切形狀…抹奶油,放水果,打包~)

以上內(nèi)容都是一個(gè)動詞(語文)
【2.沒有具體實(shí)施的行為也是一個(gè)類,抽象的概念,存在與腦海中】
對象:【對象是具體的實(shí)物或者行為,(唯物主義)】
明星林志玲這個(gè)美女 就是一個(gè)對象
小豬佩奇這個(gè)角色 也是一個(gè)對象
我手上這臺電腦 也是一個(gè)對象
我現(xiàn)在坐著的這個(gè)凳子 也是一個(gè)對象

【1.對象是真真正正存在的實(shí)物,你看得見摸得著,不需要想象。】

我昨天開車去菜市場 就是一個(gè)對象
剛剛?cè)プ隽藗€(gè)拉皮 也是一個(gè)對象
我給姐姐做了的生日蛋糕 這是一個(gè)對象

【2.真實(shí)發(fā)生過的行為就是對象,不需要想像,因?yàn)檎娴淖隽恕?
類和對象的關(guān)系:
都是面向?qū)ο箝_發(fā)中必不可少的內(nèi)容。
1.類是由對象總結(jié)而來的。這個(gè)過程叫做抽象化
2.對象是由類具體實(shí)施而來。這個(gè)過程叫做實(shí)例化

創(chuàng)建文件:
習(xí)慣使用小寫字母當(dāng)作文件名,可以使用下劃線進(jìn)行分割。

類名的書寫規(guī)范:
使用駝峰命名法,
大駝峰: MyCar XiaoBaiTu…
小駝峰: myCar xiaoBaiTu…

類的組成:
女朋友:(類)
特征:性別女,膚白,貌美,大長腿…
sex = “女”
color = “皮膚白”
face = “貌美”
leg = “大長腿”

功能:洗衣,做飯,打掃衛(wèi)生,陪…
def wash():
洗衣功能

            
              def cook():
    做飯功能

def clean():
    打掃衛(wèi)生功能
...

            
          

類中內(nèi)容只有2個(gè):屬性和方法
屬性:用于描述特征的變量->成員屬性
方法:用于描述功能的函數(shù)->成員方法
也有一種說法:類中只有屬性

類的書寫規(guī)則:
1.聲明一個(gè)類必須使用class關(guān)鍵字
2.類名的聲明需要符合駝峰命名法(推薦)
3.類中只能存在兩種內(nèi)容:屬性和方法,除此之外不允許出現(xiàn)其他內(nèi)容
4.聲明成員屬性的時(shí)候,變量必須賦值
5.聲明成員方法的時(shí)候,按照函數(shù)聲明規(guī)范即可(參數(shù)中會自動添加self參數(shù))

實(shí)例化對象:
對象變量 = 類名()

spl = GirlFriend()

python中有無數(shù)個(gè)數(shù)據(jù)類型,本質(zhì)上所有的數(shù)據(jù)類型都是一個(gè)類

print(GirlFriend)
print(type(1))
print(type(GirlFriend()))
print(GirlFriend()) 只有這個(gè)輸出的是對象

獲取類和對象中所屬成員的信息
類:類名. dict
對象:對象名. dict

類成員的操作:(少用)
成員屬性:(和變量一樣)
訪問 類名.成員屬性名
修改 類名.成員屬性名 = 新值
刪除 del 類名.成員屬性名
添加 類名.成員屬性名 = 值

class Car():
wheel = 4
car_door = 4
color = “多種多樣”
def move(self):
print(“小汽車開起來,嘟嘟嘟”)
def load(self):
print(“一個(gè)車?yán)镉斜本┖蜕虾5乃袑W(xué)員”)

car=Car() #實(shí)例化對象
print(Car.wheel) #使用類訪問成員屬性
print(Car. dict )#查看類的信息
Car.wheel=“黃色” #修改類的成員屬性
print(Car. dict )
del Car.wheel #刪除類的成員屬性
print(Car. dict )
Car.name=“奔馳”
print(Car. dict )

成員方法
訪問 類名.方法名(參數(shù))
修改 類名.方法名 = 新的函數(shù) (不要加括號)(注意:僅限了解,不推薦使用)
刪除 del 類名.方法名 (不要加括號)
添加 類名.新方法名 = 函數(shù)(也可以是lambda表達(dá)式)(注意:僅限了解,不推薦使用)

class Car():
wheel = 4
car_door = 4
color = “多種多樣”
def move(self):
print(“小汽車開起來,嘟嘟嘟”)
def load(self):
print(“一個(gè)車?yán)镉斜本┖蜕虾5乃袑W(xué)員”)

Car.move(1)
print(Car. dict )
Car.move=lambda x:print(“我愛小汽車”)
print(Car. dict )
del Car.load
print(Car. dict )
Car.love=lambda x:print(“奔馳我要定了”)
print(Car. dict )

對象成員的操作:
成員屬性:
訪問 對象.成員屬性名
修改 對象.新成員屬性名 = 新值
添加 對象.成員屬性名 = 值
刪除 del 對象.成員屬性名 (必須是屬于當(dāng)前對象的成員才可以)

class Car():
wheel = 4
car_door = 4
color = “多種多樣”
def move(self):
print(“小汽車開起來,嘟嘟嘟”)
def load(self):
print(“一個(gè)車?yán)镉斜本┖蜕虾5乃袑W(xué)員”)

car=Car()
print(car.wheel)
print(car. dict )
car.wheel=“黃色” #先給對象添加屬性
print(car. dict )
car.wheel=“白色” #修改對象的屬性
print(car. dict )
del car.wheel
print(car. dict )
car.name=“奔馳”
print(car. dict )

成員方法:
訪問 對象.成員方法名()
修改 對象.成員方法名 = 新的函數(shù)(不要加括號)
添加 對象.成員方法名 = 函數(shù) (不要加括號)
刪除 del 對象.成員方法名 (不要加括號)

class Car():
wheel = 4
car_door = 4
color = “多種多樣”
def move(self):
print(“小汽車開起來,嘟嘟嘟”)
def load(self):
print(“一個(gè)車?yán)镉斜本┖蜕虾5乃袑W(xué)員”)
car=Car()
car.move()
print(car. dict )
car.move=lambda x:print(“我愛小汽車”) #添加對象方法
print(car. dict )
car.move=lambda x:print(“奔馳我要定了”) #修改對象方法
print(car. dict )
del car.move #刪除對象方法
print(car. dict )

1.實(shí)例化對象的時(shí)候通常情況下類中的成員不會在對象中復(fù)制一份
2.訪問對象成員的時(shí)候,只要沒有該成員,對象會向?qū)嵗念惒檎摇?
3.對象成員的添加和修改,都只會影響當(dāng)前對象本身,不會影響類和其他對象
4.刪除對象成員時(shí)候,必須是該對象自身的成員才可以刪除,不可以刪除類和其他對象~


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 毛片免费观看 | 懂色中文一区二区三区在线视频 | 美女网站在线观看视频18 | 日韩一区二区三区四区 | 日本精品久久无码影院 | av中文字幕在线 | 国产福利在线播放 | 欧美日韩中文 | 欧美国产另类 | 欧美日韩免费在线观看视频 | 欧美精品成人一区二区三区四区 | 二级黄绝大片中国免费视频 | 国产在线视频一区二区 | 欧美影院入口 | 日韩高清不卡 | 做羞羞视频 | 91麻豆精品国产91久久久更新资源速度超快 | 九九视频高清视频免费观看 | 999热精品 | 亚洲精品黄色 | 日韩精品亚洲专区在线电影不卡 | 91网在线观看 | 国产美女一区二区 | 色五五月五月开 | 一级做a爰片性色毛片视频图片 | 久久久久国产精品免费免费搜索 | 富二代精品视频 | 欧美日韩亚洲国产 | 国产碰碰 | 狠狠色噜噜狠狠狠狠黑人 | 亚洲精品乱码久久久久久久久久 | 2022最新a精品视频在线观看 | 日韩精品久久久久影院 | 成人免费一级毛片在线播放视频 | 在线国产欧美 | 奇米视频888 | 国产99久久亚洲综合精品 | 国产精品美女www爽爽爽视频 | 欧美黑人又粗又长 | 亚洲一区免费在线观看 | 色哟哟在线观看精品入口 |