欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

python常用魔法函數(shù) 魔法方法python

【python】魔法方法 :__getitem__ 、 __len__、__setitem__等的使用

在Python中,如果我們想實現(xiàn)創(chuàng)建類似于序列和映射的類(可以迭代以及通過[下標(biāo)]返回元素),可以通過重寫魔法方法 __getitem__、__setitem__、__delitem__、__len__ 方法去模擬。

創(chuàng)新互聯(lián)建站專注于許昌網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供許昌營銷型網(wǎng)站建設(shè),許昌網(wǎng)站制作、許昌網(wǎng)頁設(shè)計、許昌網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)公司服務(wù),打造許昌網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供許昌網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

__getitem__(self,key): 返回鍵對應(yīng)的值。

__setitem__(self,key,value): 設(shè)置給定鍵的值

__delitem__(self,key): 刪除給定鍵對應(yīng)的元素。

__len__(): 返回元素的數(shù)量

【注釋】只要實現(xiàn)了 __getitem__ 和 __len__ 方法,就會被認(rèn)為是序列。

這些魔術(shù)方法的原理就是:當(dāng)我們對類的屬性item進行下標(biāo)的操作時,首先會被 __getitem__()、__setitem__()、__delitem__() 攔截,從而執(zhí)行我們在方法中設(shè)定的操作,如賦值,修改內(nèi)容,刪除內(nèi)容等等。

這個方法應(yīng)該以與鍵相關(guān)聯(lián)的方式存儲值,以便之后能夠使用 __setitem__ 來獲取。當(dāng)然,這個對象可變時才需要實現(xiàn)這個方法。

舉個栗子:

定義一副撲克牌(不包括大小王),對牌進行洗牌,然后發(fā)牌。

Output:

【注意】 :我們會發(fā)現(xiàn)output中,輸出了: slice(1, 3, None) ,下面給出解釋。

語法:

參數(shù)說明:

slice() 函數(shù)實現(xiàn)切片對象,主要用在切片操作函數(shù)里的參數(shù)傳遞。

舉兩個栗子來看看:

Output:

切片原理

output

(程序員必會的 hhhhh.....)

看看slice在python3.7中是怎么描述的:

Python魔法函數(shù)(特殊函數(shù))

Python中如何實現(xiàn)運算符的重載,即實現(xiàn)例如a+b這樣的運算符操作呢?

在C++中可以使用 operator 關(guān)鍵字實現(xiàn)運算符的重載。但是在Python中沒有類似這樣的關(guān)鍵字,所以要實現(xiàn)運算符的重載,就要用到Python的魔法函數(shù)。Python魔法函數(shù)是以雙下劃線開頭,雙下劃線結(jié)尾的一組函數(shù)。我們在類定義中最常用到的 __init__ 函數(shù)就是這樣一個魔法函數(shù),它在創(chuàng)建類對象時被自動調(diào)用。

下面我們來看個簡單的例子。

上述代碼示例了幾個魔法函數(shù)的用法。 __add__ 函數(shù)對應(yīng)了二元運算符+,當(dāng)執(zhí)行a+b語句時,python就會自動調(diào)用a. add (b)。 對于上述例子中的v1+v2+v3,則相當(dāng)于調(diào)用了(v1. add(v2)). add(v3)。

代碼中還有一個在Python類定義經(jīng)常使用的 __str__ 函數(shù),當(dāng)使用 str() 時會被調(diào)用。print函數(shù)對傳入的參數(shù)都調(diào)用了str()將其轉(zhuǎn)換成易讀的字符串形式,便于打印輸出,因而會調(diào)用類定義的__str__函數(shù)打出自定義的字符串。

代碼中還有一個特殊的 __call__ 函數(shù),該函數(shù)在將對象采用函數(shù)調(diào)用方式使用時被調(diào)用, 例如v1()相當(dāng)于v1. call ()。

以上就是魔法函數(shù)的基本使用方法。常見的魔法函數(shù)我們可以使用 dir() 函數(shù)來查看。

輸出結(jié)果為:

上述結(jié)果中形式為‘__函數(shù)名__’的函數(shù)為魔法函數(shù),注意有些對象也是這種形式,例如__class__, __module__等, 這些不是魔法函數(shù)。具體的魔法函數(shù)說明可以參考Python官方說明文檔。

以上代碼在Python3.6運行通過.

python:matplotlib,魔法函數(shù)%matplotlib notebook,plot里style='k--o'是什么意思呢?

知乎自己看網(wǎng)頁鏈接:

matplotlib的plot函數(shù)接受一組X和Y坐標(biāo),還可以通過color、marker和linestyle關(guān)鍵字傳入指定的顏色、標(biāo)記和線型,或者用一個表示顏色、標(biāo)記和線型的格式字符串替代,兩種方法是等效的。格式字符串中color、marker和linestyle可以任意排列,如'ko--','k--o','o--k'

Python常用函數(shù)三有哪些?這7個函數(shù)使用頻率最高,總算搞明白了

1.1 例如:print(hex(2))案例

1.2 輸出函數(shù):print(hex(2))

1.3 輸出結(jié)果:0x2

1.4 解析說明:返回16進制的數(shù)。

2.1 例如:print(chr(10))案例

2.2 輸出函數(shù):print(chr(10))

2.3 輸出結(jié)果:0o12

2.4 解析說明:返回當(dāng)前整數(shù)對應(yīng)的ASCll碼

3.1 例如:print(ord("b"))案例

3.2 輸出函數(shù):print(ord("b"))

3.3 輸出結(jié)果:98

3.4 解析說明:返回當(dāng)前ASCll碼的10進制數(shù)

4.1 例如:print(chr(97))

4.2 輸出函數(shù):print(chr(97))

4.3 輸出結(jié)果:b

4.4 解析說明:返回當(dāng)前ASCll碼的10進制數(shù)。

案例一:給你一個字符串,s = 'hello kitty'

1.1 輸出函數(shù):print(s.capitalize())

1.2 輸出結(jié)果:0x2

1.3 解析說明:返回16進制的數(shù)。

2.1輸出函數(shù):print(s.replace('kitty','kuang'))

2.2 輸出結(jié)果:hello kuang

2.3 解析說明:替換功能,將kitty換成kuang。

2.4 輸出函數(shù):print(s.replace('4','KK'))

2.5 輸出結(jié)果:12KK12KK

2.6 解析說明:所有的4都替換成KK

2.7 輸出函數(shù):print(s.replace('4','KK'))

2.8 輸出結(jié)果:12KK12KK124

2.9 解析說明:將前兩個的4替換成go

案例一:給你一個字符串,ip = '192.168.1.1'

3.1 輸出函數(shù):print(ip.split(','))

3.2 輸出結(jié)果:['192.168.1.1']

3.3 解析說明:將字符串分割成列表

案例一:給你一個字符串,ip = '192.168.1.1'

3.3 輸出函數(shù):print(ip.split(',',2))

3.4 輸出結(jié)果:['192.168.1.1']

3.5 解析說明:從第二個開始分割成列表

python常用函數(shù)

1、complex()

返回一個形如?a+bj?的復(fù)數(shù),傳入?yún)?shù)分為三種情況:

參數(shù)為空時,返回0j;參數(shù)為字符串時,將字符串表達(dá)式解釋為復(fù)數(shù)形式并返回;參數(shù)為兩個整數(shù)(a,b)時,返回?a+bj;參數(shù)只有一個整數(shù) a 時,虛部 b 默認(rèn)為0,函數(shù)返回?a+0j。

2、dir()

不提供參數(shù)時,返回當(dāng)前本地范圍內(nèi)的名稱列表;提供一個參數(shù)時,返回該對象包含的全部屬性。

3、divmod(a,b)

a -- 代表被除數(shù),整數(shù)或浮點數(shù);b -- 代表除數(shù),整數(shù)或浮點數(shù);根據(jù) 除法運算 計算 a,b 之間的商和余數(shù),函數(shù)返回一個元組(p,q)?,p 代表商?a//b?,q 代表余數(shù)?a%b。

4、enumerate(iterable,start=0)

iterable -- 一個可迭代對象,列表、元組序列等;start -- 計數(shù)索引值,默認(rèn)初始為0‘該函數(shù)返回枚舉對象是個迭代器,利用 next() 方法依次返回元素值,每個元素以元組形式存在,包含一個計數(shù)元素(起始為 start )和 iterable 中對應(yīng)的元素值。

網(wǎng)頁標(biāo)題:python常用魔法函數(shù) 魔法方法python
網(wǎng)站URL:http://chinadenli.net/article20/dodpcjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)App開發(fā)響應(yīng)式網(wǎng)站定制開發(fā)企業(yè)網(wǎng)站制作品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)