小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Python類編程中幾個(gè)知識(shí)點(diǎn)

 網(wǎng)摘文苑 2022-12-29 發(fā)布于新疆

帶你走進(jìn) @ 機(jī)器人時(shí)代

Discover 點(diǎn)擊上面藍(lán)色文字,關(guān)注我們

Python類編程中幾個(gè)知識(shí)點(diǎn)


Python
類編程中,我們經(jīng)常會(huì)碰到需要調(diào)用類的實(shí)例,一般來(lái)說(shuō)有兩種方法,一種是通過(guò)類對(duì)象調(diào)用,另一種是通過(guò)類名調(diào)用。

通常情況下,我們希望用類對(duì)象來(lái)調(diào)用實(shí)例方法,但是要注意的是,通過(guò)類名直接調(diào)用實(shí)例方法時(shí),Python 并不會(huì)自動(dòng)給 self 參數(shù)傳值。

如果想通過(guò)類名直接調(diào)用實(shí)例方法,就必須手動(dòng)為 self 參數(shù)傳值。我們來(lái)看看下面的代碼:

#定義一個(gè)類class CL: def info(self): print('這是一個(gè)類方法')#通過(guò)類名直接調(diào)用實(shí)例方法d=CL()CL.info(d)運(yùn)行結(jié)果:這是一個(gè)類方法

我們也可以修改代碼,直接傳遞任意的參數(shù):

#定義一個(gè)類class CL:    def info(self):        print(self,'這是一個(gè)類方法')#通過(guò)類名直接調(diào)用實(shí)例方法CL.info('哦,')運(yùn)行結(jié)果:哦, 這是一個(gè)類方法

我們?cè)趯W(xué)習(xí)類編程的時(shí)候,不止一次提到過(guò)命名空間。實(shí)際上,在所有的class關(guān)鍵字修飾的代碼塊中,都可以看成獨(dú)立的空間。

在這個(gè)獨(dú)立的空間里面,所有的屬性和方法都是獨(dú)立的。所有的屬性都是在這個(gè)空間里面的變量,所有的方法都是這個(gè)空間的函數(shù)。

不過(guò),在程序中我們應(yīng)該如何調(diào)用它們呢?我們來(lái)看看一個(gè)實(shí)例:

a='這是一個(gè)全局變量'def say(): print('這是一個(gè)全局函數(shù)的方法')class st: def say1(): print('這是一個(gè)類空間里面的函數(shù)方法') b='這是一個(gè)類空間的變量'print(a)say()print(st.b)st.say1()運(yùn)行結(jié)果:這是一個(gè)全局變量這是一個(gè)全局函數(shù)的方法這是一個(gè)類空間的變量這是一個(gè)類空間里面的函數(shù)方法


我們類命名空間中的變量和函數(shù)在使用時(shí),只需要標(biāo)注 st(類名) 前綴即可。甚至,Python還允許在類命名空間里直接運(yùn)行可執(zhí)行程序:

class gun:    print('這是運(yùn)行在類的程序')    [print(i) for i in range(1,10)]    運(yùn)行結(jié)果:這是運(yùn)行在類的程序123456789


通過(guò)使用描述符,可以讓程序員在引用一個(gè)對(duì)象屬性時(shí)自定義要完成的工作。一個(gè)類可以將屬性管理全權(quán)委托給描述符類。

如果一個(gè)類的某個(gè)屬性有數(shù)據(jù)描述符,那么每次查找這個(gè)屬性時(shí),都會(huì)調(diào)用描述符的 __get__() 方法,并返回它的值;同樣,每次在對(duì)該屬性賦值時(shí),也會(huì)調(diào)用 __set__() 方法。我們可以看看下面的例子:

class Ace: def __init__(self, i = None, name = '描述符的數(shù)據(jù)'): self.v = i self.name = name def __get__(self, a, c): print('這是get查找的',self.name) return self.v def __set__(self, s, b): print('他是',self.name) self.v = bm = Ace(5,'輸入新的變量')print(m.name)class myClass: x = Ace(10,'調(diào)用類輸入的變量')n=myClass()print(n.x)輸出結(jié)果:輸入新的變量這是get查找的 調(diào)用類輸入的變量10


是不是很燒腦,我們可以在后面的學(xué)習(xí)中慢慢深入理解。

繼續(xù)堅(jiān)持學(xué)習(xí),每天都能進(jìn)步一點(diǎn)?。?!

往期回顧:

  • 來(lái)來(lái)來(lái),送你一個(gè)金牌銷售機(jī)器人,7X24小時(shí)不休,不要工資免費(fèi)用!
  • 不要嫌你現(xiàn)在的工作很累,可能你離失業(yè)不遠(yuǎn)了!
  • 作為旅游行業(yè)的一個(gè)小老板,我受夠了!這是要被淘汰的節(jié)奏嗎?

本文引用和摘錄相關(guān)內(nèi)容,請(qǐng)聯(lián)系侵刪。

- END -

最后,文章有幫助到你的話點(diǎn)贊在看
勵(lì)我們分享更多的干貨

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多