日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python核心基礎(chǔ)(二):魔法函數(shù)

系統(tǒng) 1696 0

一:什么是魔法函數(shù)

? ? ?看一個(gè)簡(jiǎn)單的例子:

            
              class Company:
    def __init__(self, employee__list):
        self.employee = employee__list

company = Company(['tom','jack','jane'])
employee = company.employee
for item in employee:
    print(item)

            
          

打印結(jié)果無疑是tom,jack,jane。那么換一種方式,使用Python的魔法函數(shù):

            
              class Company:
    def __init__(self, employee__list):
        self.employee = employee__list
    def __getitem__(self, item):
        return self.employee[item]

company = Company(['tom','jack','jane'])
# employee = company.employee
# for item in employee:
#     print(item)
for item in company:
    print(item)

            
          

打印結(jié)果跟上面的結(jié)果是一致的。在使用了__getitem__的魔法函數(shù)后,在對(duì)company對(duì)象進(jìn)行遍歷的時(shí)候,會(huì)去尋找該函數(shù)進(jìn)行遍歷操作。即擁有__getitem__函數(shù)的對(duì)象會(huì)自動(dòng)變?yōu)榭傻念愋汀?

什么是魔法函數(shù)?

? ? ? ? python內(nèi)置的以雙下劃線開頭并以雙下劃線結(jié)尾的函數(shù)(不能自己定義)。

Python內(nèi)置了相當(dāng)多的魔法函數(shù),這些魔法函數(shù)具有各自的作用,比如在創(chuàng)建類的時(shí)候定義了__getitem__函數(shù),你就可以對(duì)該類的對(duì)象進(jìn)行遍歷,切片等操作,如果沒有定義相關(guān)的魔法函數(shù),這些操作是會(huì)報(bào)異常的。

對(duì)于Python的相關(guān)魔法函數(shù)的介紹可以看一下這篇文章:

https://segmentfault.com/a/1190000007256392

?


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 会同县| 凤冈县| 西乌珠穆沁旗| 唐山市| 沈阳市| 大竹县| 靖边县| 罗源县| 北海市| 洪江市| 郓城县| 分宜县| 梨树县| 沧源| 邻水| 庆安县| 临夏市| 静宁县| 宁远县| 鄂伦春自治旗| 深圳市| 清苑县| 眉山市| 丰城市| 巍山| 奇台县| 荆州市| 北川| 南靖县| 南部县| 天祝| 武清区| 曲阜市| 萨嘎县| 峨山| 崇左市| 仙桃市| 虞城县| 郯城县| 循化| 台安县|