0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

揭開Python類中self的神秘面紗

汽車玩家 ? 來源:碼農(nóng)阿勇 ? 作者:碼農(nóng)阿勇 ? 2020-01-19 17:51 ? 次閱讀

許多python初學(xué)者,在接觸到python面向?qū)ο蟮臅r(shí)候,就被類中包含的方法中的self打敗了,不知道self是何物?

既然寫在方法中,是必須參數(shù),為何在調(diào)用方法的時(shí)候不給它傳參數(shù)還能正常運(yùn)行?和我們前面學(xué)的函數(shù)傳參這塊矛盾么?勇哥在這里給慢慢大家揭開self的神秘面紗。

首先我們看下如下代碼:

揭開Python類中self的神秘面紗

改進(jìn)上述代碼,我們來探索下self到底是個(gè)什么東西?大家應(yīng)該記得python中有一個(gè)id()內(nèi)置函數(shù),它可以返回指定變量在內(nèi)存中存放的地址。

Self既然作為show方法的形參,那我就可以在該方法內(nèi)部通過print打印,該形參變量在內(nèi)存中的存放位置;我們?cè)陬愅鈩?chuàng)建的對(duì)象mytest,它其實(shí)也是一個(gè)變量,我也可以通過id函數(shù)打印給變量在內(nèi)存中的存放位置,改進(jìn)后的代碼執(zhí)行結(jié)果如下:

揭開Python類中self的神秘面紗

通過上圖,我們發(fā)現(xiàn)對(duì)象mytest變量的存放地址和self的內(nèi)存存放地址竟然是一樣的,這就意味它們代表的是一個(gè)東西,那就是mytest變量本身。當(dāng)系統(tǒng)在執(zhí)行mytest=test()的時(shí)候,python的解釋器會(huì)悄悄的幫我們把mytest實(shí)例變量傳給了self。所以后邊我們?cè)僬{(diào)用該方法的時(shí)候,不需要再給該方法傳參數(shù)了。

另外類中的普通方法參數(shù)self必須寫在最前邊(即最左邊),self參數(shù)本身的名字可以修改,但是不推薦,因?yàn)榇蠹叶技s定叫這個(gè)名字了,所以我們就跟著隨大流好了。對(duì)于接觸過其他編程語言的人來說,python中是self與C++JAVA中類中的this關(guān)鍵字意義是一樣的。

因此self在方法中是必須(位置)參數(shù)沒錯(cuò),但是在創(chuàng)建對(duì)象或?qū)嵗哪且豢?,python解釋器就幫我們傳遞了當(dāng)前的對(duì)象給self了,所以我們?cè)僬{(diào)用該方法的時(shí)候不需要在傳了。正是因?yàn)榉椒ㄖ杏衧elf,我們就可以在方法中對(duì)這個(gè)實(shí)例的屬性進(jìn)行操作了,記住self參數(shù)指向了當(dāng)前對(duì)象本身。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    55

    文章

    4768

    瀏覽量

    84376
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    艾畢勝電子全自動(dòng)跟拍智能云臺(tái)驅(qū)動(dòng)板方案的神秘面紗

    在科技飛速發(fā)展的今天,全自動(dòng)跟拍智能云臺(tái)已經(jīng)成為攝影、直播等領(lǐng)域的熱門設(shè)備。而在其背后,驅(qū)動(dòng)板方案則是實(shí)現(xiàn)其出色性能的關(guān)鍵所在。今天,就讓我們一同來揭開全自動(dòng)跟拍智能云臺(tái)驅(qū)動(dòng)板方案的神秘面紗
    的頭像 發(fā)表于 10-09 17:29 ?190次閱讀
    艾畢勝電子全自動(dòng)跟拍智能云臺(tái)驅(qū)動(dòng)板方案的<b class='flag-5'>神秘</b><b class='flag-5'>面紗</b>

    用智能DAC揭開醫(yī)療報(bào)警設(shè)計(jì)的神秘面紗

    電子發(fā)燒友網(wǎng)站提供《用智能DAC揭開醫(yī)療報(bào)警設(shè)計(jì)的神秘面紗.pdf》資料免費(fèi)下載
    發(fā)表于 09-14 10:50 ?0次下載
    用智能DAC<b class='flag-5'>揭開</b>醫(yī)療報(bào)警設(shè)計(jì)的<b class='flag-5'>神秘</b><b class='flag-5'>面紗</b>

    北斗衛(wèi)星時(shí)鐘——揭開“授時(shí)”的神秘面紗

    ,這些時(shí)間信息又是從哪里來的呢?為什么我們可以隨時(shí)隨地都能獲取準(zhǔn)確的時(shí)間信息?這得益于高精度的 授時(shí)服務(wù) ,今天我們就來揭開“授時(shí)”的神秘面紗。 ? ? ?大家都知道我國的北斗導(dǎo)航衛(wèi)星,是用于定位導(dǎo)航的。那么北斗是怎么進(jìn)行定位導(dǎo)
    的頭像 發(fā)表于 07-25 16:21 ?326次閱讀
    北斗衛(wèi)星時(shí)鐘——<b class='flag-5'>揭開</b>“授時(shí)”的<b class='flag-5'>神秘</b><b class='flag-5'>面紗</b>

    深入分析:常說的3H原則在PCB設(shè)計(jì)的應(yīng)用

    “3H”這個(gè)設(shè)計(jì)經(jīng)驗(yàn)我們一直在傳頌,到底它在具體PCB設(shè)計(jì)項(xiàng)目中到底效果怎么樣呢?話不多說,本期文章從理論到實(shí)際給大家全面分析,揭開它那神秘面紗!
    的頭像 發(fā)表于 07-15 16:49 ?444次閱讀
    深入分析:常說的3H原則在PCB設(shè)計(jì)<b class='flag-5'>中</b>的應(yīng)用

    xAI公司將在八月揭開其新Grok-2大語言模型的神秘面紗

    在科技界的浩瀚星空中,埃隆·馬斯克的每一次發(fā)聲都如同璀璨的新星,瞬間照亮前行的道路。近日,這位科技巨擘在推特上的一則簡(jiǎn)短宣告,再次將全球的目光聚焦于人工智能的前沿陣地——他的初創(chuàng)公司xAI即將在八月揭開其最新力作Grok-2大語言模型的神秘
    的頭像 發(fā)表于 07-02 11:38 ?439次閱讀

    揭開Pluto XZU20的神秘面紗—探尋未來緊湊而強(qiáng)大的FPGA解決方案

    創(chuàng)新成果具有挽救生命、改變生活和創(chuàng)造夢(mèng)想的能力?,F(xiàn)在讓我們一起緊隨Pluto產(chǎn)品發(fā)布會(huì)的步伐,揭開PlutoXZU20的神秘面紗,與我們一起探尋未來緊湊而強(qiáng)大的FP
    的頭像 發(fā)表于 06-21 08:09 ?306次閱讀
    <b class='flag-5'>揭開</b>Pluto XZU20的<b class='flag-5'>神秘</b><b class='flag-5'>面紗</b>—探尋未來緊湊而強(qiáng)大的FPGA解決方案

    揭開快充芯片的神秘面紗

    UFP芯片是一種用于USB快充技術(shù)的關(guān)鍵元件,它在移動(dòng)設(shè)備和充電器之間進(jìn)行通信和協(xié)調(diào),以實(shí)現(xiàn)高效、安全、快速的充電過程。下面我們將揭開快充芯片的神秘面紗,深入探討UFP快充芯片的工作原理和功能。
    的頭像 發(fā)表于 04-15 12:51 ?537次閱讀

    UFP芯片-揭開快充芯片的神秘面紗

    類型。 ? ? UFP芯片的主要功能是什么? UFP芯片,即受電端協(xié)議芯片,是快充技術(shù)的關(guān)鍵組件。它的主要功能是在快充過程,與充電端(通常是充電器或充電設(shè)備)進(jìn)行通信和協(xié)商,以確保安全、高效、快速地充電。 具體來說,UFP芯片在接收到充電請(qǐng)
    的頭像 發(fā)表于 04-13 20:00 ?617次閱讀
    UFP芯片-<b class='flag-5'>揭開</b>快充芯片的<b class='flag-5'>神秘</b><b class='flag-5'>面紗</b>

    英偉達(dá)GTC大會(huì)將開幕 人形機(jī)器人成英偉達(dá)GTC議題

    英偉達(dá)創(chuàng)始人兼CEO黃仁勛將在北京時(shí)間3月19日凌晨發(fā)表主題演講,預(yù)計(jì)他將為我們揭開新一代硬件產(chǎn)品的神秘面紗
    的頭像 發(fā)表于 03-18 15:14 ?1545次閱讀

    芯訊通打造了基于高通最新一代驍龍?X75和X72 5G調(diào)制解調(diào)器

    隨著ChatGPT、文心一言等AIGC大模型的崛起,AI的神秘面紗逐漸被公眾揭開。
    的頭像 發(fā)表于 03-14 10:00 ?1059次閱讀

    AQY212S光耦合器:特性和應(yīng)用揭秘

    讓我們深入研究AQY212S的功能和應(yīng)用,揭開這款令人印象深刻的器件的神秘面紗。
    的頭像 發(fā)表于 01-19 16:01 ?1024次閱讀
    AQY212S光耦合器:特性和應(yīng)用揭秘

    無源濾波設(shè)計(jì)分享,揭開測(cè)溫濾波電路的神秘面紗

    在使用熱電偶測(cè)溫模塊或設(shè)計(jì)熱電偶測(cè)溫電路,每個(gè)采集通道往往需要一階甚至多階的無源濾波電路,關(guān)于熱電偶測(cè)溫?zé)o源濾波電路的設(shè)計(jì)需要考慮什么因素呢?熱電偶測(cè)溫原理簡(jiǎn)述兩種不同材料的導(dǎo)體A、B與采樣電路
    的頭像 發(fā)表于 12-11 17:42 ?452次閱讀
    無源濾波設(shè)計(jì)分享,<b class='flag-5'>揭開</b>測(cè)溫濾波電路的<b class='flag-5'>神秘</b><b class='flag-5'>面紗</b>

    AN-501推導(dǎo)時(shí)鐘抖動(dòng)引起ADC信噪比上限,為何信號(hào)沒有取有效值?

    時(shí)鐘抖動(dòng)引起的采樣噪聲為: 計(jì)算SNR為: 為何這里不像《[MT-001_cn] 揭開公式(SNR = 6.02N + 1.76dB)的神秘面紗,以及為什么我們要予以關(guān)注》文章里那樣,信號(hào)用
    發(fā)表于 12-01 08:30

    揭開高性能多路復(fù)用數(shù)據(jù)采集系統(tǒng)面紗

    電子發(fā)燒友網(wǎng)站提供《揭開高性能多路復(fù)用數(shù)據(jù)采集系統(tǒng)面紗.pdf》資料免費(fèi)下載
    發(fā)表于 11-23 10:06 ?0次下載
    <b class='flag-5'>揭開</b>高性能多路復(fù)用數(shù)據(jù)采集系統(tǒng)<b class='flag-5'>面紗</b>

    pythonnumber代表什么

    是正數(shù)、負(fù)數(shù)或零。整數(shù)類型在Python中有很多應(yīng)用場(chǎng)景,例如統(tǒng)計(jì)數(shù)據(jù)、索引、循環(huán)計(jì)數(shù)等。在Python,整數(shù)
    的頭像 發(fā)表于 11-22 09:50 ?1829次閱讀