国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

python私有變量和私有方法

python爬蟲知識分享 ? 來源:python爬蟲知識分享 ? 作者:python爬蟲知識分享 ? 2022-03-08 16:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

python私有變量和私有方法

1. 下劃線妙用

在 Python 中,下劃線可是非常推薦使用的符號:

變量名推薦使用下劃線分隔的蛇形命名法

魔法方法、構(gòu)造函數(shù)都需要使用雙下劃線

對于暫時用不到的變量值,可以賦值給單下劃線 _ 進行占位

根據(jù)分類,我把下劃線寫法分成下面五種:

單前導(dǎo)下劃線:_var

單末尾下劃線:var_

雙前導(dǎo)下劃線:__var

雙前導(dǎo)和末尾下劃線:__var__

單下劃線:_

由于篇幅所限,本篇將只介紹跟標(biāo)題(私有變量與私有方法)有關(guān)的用法,也就是訪問控制。

上面五種寫法中,涉及到訪問控制的有:_var__var

2. 單前導(dǎo)下劃線 _var

下劃線前綴的含義是告知其他程序員以單個下劃線開頭的變量或方法僅供內(nèi)部使用。

請看下面這個例子

class Demo:
   def __init__(self):
       self.foo = 11
       self._bar = 22

如果你實例化此類,然后分別訪問 self.fooself._bar 會發(fā)生什么情況?

>>> demo = Demo()
>>> demo.foo
11
>>> demo._bar
22

結(jié)果是:外界都可以直接訪問這兩個屬性。

但實際上,二者是有區(qū)別的。PEP 8 有提及,如果一個屬性的有單前導(dǎo)下劃線,則該屬性應(yīng)該僅供內(nèi)部訪問。

但這并不是強制性的,不然上面我們也不可能通過 self._bar 訪問到 22,但做為一名 Python 程序員最好遵守這一共識。

3. 雙前導(dǎo)下劃線 __var

雙下劃線前綴會導(dǎo)致Python解釋器重寫屬性名稱,以避免子類中的命名沖突。

這也叫做名稱修飾(name mangling) - 解釋器更改變量的名稱,以便在類被擴展的時候不容易產(chǎn)生沖突。

我知道這聽起來很抽象。因此,我組合了一個小小的代碼示例來予以說明:

class Demo:
   def __init__(self):
       self.foo = 11
       self._bar = 22
       self.__baz = 33

將其進行實例化,然后使用 dir() 函數(shù)查看這個對象的屬性

>>> demo = Demo()
>>> dir(demo)
['_Demo__baz', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_bar', 'foo']

不難發(fā)現(xiàn),foo_bar 都很正常,可以使用 demo.屬性名 進行訪問。

__baz 明顯和 foo 、 _bar 不一樣,嘗試訪問后卻報了 AttributeError,屬性不存在。

>>> demo.__baz
Traceback (most recent call last):
  File "", line 1, in 
AttributeError: 'Demo' object has no attribute '__baz'

如果你仔細(xì)觀察,你會看到此對象上有一個名為_Demo__baz的屬性。這就是Python解釋器所做的名稱修飾。它這樣做是為了防止變量在子類中被重寫。

如果想訪問,那得按照 dir 提示的寫法去訪問,在 __baz 前面加上 _類名

>>> demo._Demo__baz
33

總結(jié)可得,使用雙下劃線開頭的屬性變量,就是一個私有變量。

這樣的規(guī)則在屬性上生效,在方法上也同樣適用。

如果一個實例方法,以雙下劃線開頭,那么這個方法就是一個私有的方法,不能由實例對象或者類直接調(diào)用。

必須得通過 實例._類名__方法名 來調(diào)用。

4. 總結(jié)一下

Python并沒有真正的私有化支持,但可用下劃線得到偽私有。

盡量避免定義以下劃線開頭的變量。

私有變量:以雙下劃線前導(dǎo)的變量,可以使用 實例._類名__變量名 進行訪問

私有方法:以雙下劃線前導(dǎo)的方法,可以使用 實例._類名__方法名() 進行訪問

私有變量和私有方法,雖然有辦法訪問,但是仍然不建議使用上面給出的方法直接訪問,而應(yīng)該用統(tǒng)一的接口(函數(shù)入口)來對私有變量進行查看、變量,對私有方法進行調(diào)用。

審核編輯:符乾江

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

    關(guān)注

    3

    文章

    4417

    瀏覽量

    67502
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4968

    瀏覽量

    73960
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4876

    瀏覽量

    90025
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    【硬核搭檔】迅為RK3588成功適配飛牛FnNAS,你的私有云迎來性能猛獸!

    【硬核搭檔】迅為RK3588成功適配飛牛FnNAS,你的私有云迎來性能猛獸!
    的頭像 發(fā)表于 02-25 15:43 ?594次閱讀
    【硬核搭檔】迅為RK3588成功適配飛牛FnNAS,你的<b class='flag-5'>私有</b>云迎來性能猛獸!

    樂鑫推出私有化智能體平臺:兼容主流大模型,打造多模態(tài) AI 能力

    樂鑫私有化智能體平臺樂鑫信息科技(688018.SH)宣布正式推出樂鑫私有化智能體平臺(ESPPrivateAgentsPlatform)。這是一個專為IoT設(shè)備廠商打造的自托管智能體平臺,支持廠商
    的頭像 發(fā)表于 12-16 18:03 ?589次閱讀
    樂鑫推出<b class='flag-5'>私有</b>化智能體平臺:兼容主流大模型,打造多模態(tài) AI 能力

    PD充電原理和私有協(xié)議

    USB Power Delivery,簡稱USB PD,是一種基于USB Type-C的電源供電標(biāo)準(zhǔn)科技一般指科學(xué)技術(shù)。
    的頭像 發(fā)表于 12-01 17:32 ?1444次閱讀
    PD充電原理和<b class='flag-5'>私有</b>協(xié)議

    戴爾科技獲評IDC全球私有智能基礎(chǔ)架構(gòu)領(lǐng)導(dǎo)者

    戴爾科技集團在最新發(fā)布的IDC MarketScape全球私有智能基礎(chǔ)架構(gòu)系統(tǒng)廠商評估報告中 被評為領(lǐng)導(dǎo)者!
    的頭像 發(fā)表于 11-20 13:52 ?529次閱讀

    工業(yè)物聯(lián)網(wǎng)平臺適合私有本地部署還是云端部署?

    工業(yè)物聯(lián)網(wǎng)平臺的部署方式需根據(jù)企業(yè)核心需求選擇, 私有本地部署適合數(shù)據(jù)安全要求極高、需深度定制且具備技術(shù)實力的企業(yè);云端部署則更適合追求成本效益、靈活擴展及快速上線的中小型企業(yè)或?qū)崟r性要求不高的場景
    的頭像 發(fā)表于 11-12 11:42 ?423次閱讀
    工業(yè)物聯(lián)網(wǎng)平臺適合<b class='flag-5'>私有</b>本地部署還是云端部署?

    SIP協(xié)議和私有協(xié)議廣播區(qū)別

    電子發(fā)燒友網(wǎng)站提供《SIP協(xié)議和私有協(xié)議廣播區(qū)別.docx》資料免費下載
    發(fā)表于 11-06 16:31 ?1次下載

    蜂鳥E203 SoC的私有設(shè)備總線的簡單使用

    BIU模塊接收IFU和LSU單元的存儲器訪問請求,判斷訪問地址區(qū)間后,通過ICB接口來訪問外部的不同接口,比如系統(tǒng)存儲接口和私有外設(shè)接口。系統(tǒng)存儲接口連接的是SoC中的系統(tǒng)存儲總線,可以訪問ROM
    發(fā)表于 10-30 07:51

    SIP廣播對講和IP私有協(xié)議廣播對講區(qū)別

    電子發(fā)燒友網(wǎng)站提供《SIP廣播對講和IP私有協(xié)議廣播對講區(qū)別.docx》資料免費下載
    發(fā)表于 09-25 16:18 ?2次下載

    研華推出ACE應(yīng)用導(dǎo)向邊緣計算解決方案及WISE-STACK私有云平臺

    研華科技今日舉辦法說會,公司2025上半年營收呈雙位數(shù)成長。面對市場對邊緣計算與 AI 的高度需求,研華推出ACE應(yīng)用導(dǎo)向邊緣計算方案與WISE-STACK私有云平臺,強化軟硬整合與生態(tài)協(xié)同,加速AI應(yīng)用落地。
    的頭像 發(fā)表于 08-12 15:37 ?2180次閱讀

    騰視科技大模型一體機解決方案:低成本私有化落地,重塑行業(yè)智能應(yīng)用新格局

    當(dāng)大模型進入 “深水區(qū)”,私有化與低成本已成為企業(yè)選型的核心考量。騰視科技大模型一體機解決方案,用技術(shù)創(chuàng)新打破 “安全與成本不可兼得” 的困境,讓各行業(yè)都能輕松擁抱智能時代。以低成本、私有化的優(yōu)勢,為各行業(yè)帶來智能化新體驗,開啟智能應(yīng)用落地新篇章。
    的頭像 發(fā)表于 08-07 11:06 ?1900次閱讀
    騰視科技大模型一體機解決方案:低成本<b class='flag-5'>私有</b>化落地,重塑行業(yè)智能應(yīng)用新格局

    自建私有云vs.公有云:長期成本建模深度分析

    私有云需承擔(dān)高額初始投資(硬件、軟件、數(shù)據(jù)中心)和長期運維成本,但適合負(fù)載穩(wěn)定、數(shù)據(jù)敏感的場景;公有云以按需付費降低門檻,適合業(yè)務(wù)波動大或快速增長的需求,但長期使用可能面臨規(guī)模成本暴增和隱性費用?;旌显撇呗钥蓛?yōu)化成本,結(jié)合兩者優(yōu)勢。
    的頭像 發(fā)表于 07-11 09:40 ?1444次閱讀
    自建<b class='flag-5'>私有</b>云vs.公有云:長期成本建模深度分析

    AIBOX 產(chǎn)品矩陣:支持主流大模型的私有化部署,滿足個性化 AI 應(yīng)用需求

    AIBOX系列產(chǎn)品具備高性能、低功耗、環(huán)境適應(yīng)性強等特點,算力覆蓋6-157TOPS,通過搭配多樣化深度學(xué)習(xí)算法,體積小巧,能夠支持主流大模型的私有化部署,為多個智慧行業(yè)進行數(shù)字化賦能。目前
    的頭像 發(fā)表于 06-25 16:32 ?1830次閱讀
    AIBOX 產(chǎn)品矩陣:支持主流大模型的<b class='flag-5'>私有</b>化部署,滿足個性化 AI 應(yīng)用需求

    極空間私有云發(fā)布新品Z4Pro+ 煥“芯”一代 破界上市

    今日,國內(nèi)網(wǎng)絡(luò)存儲行業(yè)領(lǐng)先品牌極空間私有云正式發(fā)布了全新一代四盤位產(chǎn)品——Z4Pro+,基于Intel全新一代架構(gòu)處理器,以“易用、智能、安全”為產(chǎn)品核心定位,為用戶帶來煥然一新的智能數(shù)據(jù)管理
    的頭像 發(fā)表于 05-15 15:55 ?1592次閱讀
    極空間<b class='flag-5'>私有</b>云發(fā)布新品Z4Pro+ 煥“芯”一代 破界上市

    有方科技正式上線首款A(yù)I技術(shù)服務(wù)智能體 “有方方工”

    近日,有方科技正式上線首款A(yù)I技術(shù)服務(wù)智能體 “有方方工”。作為AI智能技術(shù)應(yīng)用的創(chuàng)新載體,“有方方工”旨在面向SPM(智能互聯(lián)產(chǎn)品制造商)客戶提供更精準(zhǔn)、更便捷、更高效的智能化技術(shù)服務(wù)。標(biāo)志著
    的頭像 發(fā)表于 03-29 09:16 ?1531次閱讀

    阿普奇工控機私有化部署Deepseek:平衡性能、成本、應(yīng)用三者的優(yōu)選硬件方案

    的競爭格局,它不僅加速了生產(chǎn)模式的智能化升級,其開源模式與低成本特性,使中小企業(yè)能以更低門檻接入AI能力, 推動行業(yè)從“經(jīng)驗驅(qū)動”向“數(shù)據(jù)智能驅(qū)動”轉(zhuǎn)型 。 但對企業(yè)而言,私有化部署Deepseek更具備戰(zhàn)略必要性: 其一 ,私有化部署能保障數(shù)據(jù)零外漏,保證
    的頭像 發(fā)表于 03-06 13:22 ?883次閱讀
    阿普奇工控機<b class='flag-5'>私有</b>化部署Deepseek:平衡性能、成本、應(yīng)用三者的優(yōu)選硬件方案