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

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

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

揭開Python類中self的神秘面紗

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

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

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

首先我們看下如下代碼:

揭開Python類中self的神秘面紗

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

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

揭開Python類中self的神秘面紗

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

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

因此self在方法中是必須(位置)參數(shù)沒錯,但是在創(chuàng)建對象或?qū)嵗哪且豢蹋琾ython解釋器就幫我們傳遞了當前的對象給self了,所以我們再調(diào)用該方法的時候不需要在傳了。正是因為方法中有self,我們就可以在方法中對這個實例的屬性進行操作了,記住self參數(shù)指向了當前對象本身。

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

    關(guān)注

    54

    文章

    4758

    瀏覽量

    84293
收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

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

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

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

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

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

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

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

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

    揭開快充芯片的神秘面紗

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

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

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

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

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

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

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

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

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

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

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

    pythonnumber代表什么

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

    Python中元的作用

    1.什么是 在理解元之前,我們必須先掌握Python(class)。 和大多數(shù)語言一樣,Pyt
    的頭像 發(fā)表于 11-02 11:18 ?449次閱讀
    <b class='flag-5'>Python</b>中元<b class='flag-5'>類</b>的作用

    Python普通方法、靜態(tài)方法、方法的區(qū)別

    1. 場景 前幾天,有一個小伙伴過來問我,Python 的 @staticmethod、@classmethod、self、cls 分別代表什么意思,自己平時光顧著用,不知道具體的含義? 事實上
    的頭像 發(fā)表于 11-02 11:03 ?691次閱讀