在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

python私有變量和私有方法

python爬蟲知識分享 ? 來源:python爬蟲知識分享 ? 作者:python爬蟲知識分享 ? 2022-03-08 16:30 ? 次閱讀

python私有變量和私有方法

1. 下劃線妙用

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

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

魔法方法、構造函數都需要使用雙下劃線

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

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

單前導下劃線:_var

單末尾下劃線:var_

雙前導下劃線:__var

雙前導和末尾下劃線:__var__

單下劃線:_

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

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

2. 單前導下劃線 _var

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

請看下面這個例子

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

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

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

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

但實際上,二者是有區別的。PEP 8 有提及,如果一個屬性的有單前導下劃線,則該屬性應該僅供內部訪問。

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

3. 雙前導下劃線 __var

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

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

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

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

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

>>> 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']

不難發現,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'

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

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

>>> demo._Demo__baz
33

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

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

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

必須得通過 實例._類名__方法名 來調用。

4. 總結一下

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

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

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

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

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

審核編輯:符乾江

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4344

    瀏覽量

    62864
  • 代碼
    +關注

    關注

    30

    文章

    4819

    瀏覽量

    68881
  • python
    +關注

    關注

    56

    文章

    4806

    瀏覽量

    84935
收藏 人收藏

    評論

    相關推薦

    把電腦當私有云,把電腦當私有云存在的風險

    在數字化轉型的洪流中,遠程連接已蔚然成風,而電腦遠程連接軟件則成為了連接各方的重要紐帶。它們不僅跨越了地域的鴻溝,更讓溝通與協作實現了無縫銜接。今天小編要給大家講解把電腦當私有云存在的風險
    的頭像 發表于 01-22 17:31 ?45次閱讀
    把電腦當<b class='flag-5'>私有</b>云,把電腦當<b class='flag-5'>私有</b>云存在的風險

    電腦私有云存儲怎么用啊,電腦私有云存儲的使用方法

    電腦私有云存儲怎么用啊,電腦私有云存儲的使用方法 ? ? 在當今數字化時代,電腦私有云存儲為我們提供了一種安全、便捷的數據存儲和管理方式,以下是其使用
    的頭像 發表于 01-22 09:58 ?33次閱讀
    電腦<b class='flag-5'>私有</b>云存儲怎么用啊,電腦<b class='flag-5'>私有</b>云存儲的使用<b class='flag-5'>方法</b>

    電腦私有云存儲什么意思,電腦私有云存儲優勢與搭建方式

    ? ? 在這個數字化時代,我們的生活和工作都與數據緊密相連。從海量的工作文檔、珍貴的家庭照片,到重要的學習資料,數據量不斷攀升,如何高效、安全地存儲和管理這些數據成為了一大難題。電腦私有云存儲的出現
    的頭像 發表于 01-17 14:32 ?74次閱讀
    電腦<b class='flag-5'>私有</b>云存儲什么意思,電腦<b class='flag-5'>私有</b>云存儲優勢與搭建方式

    蘋果電腦搭建私有云,蘋果電腦搭建私有云的詳細操作步驟

    ? ? 隨著云計算技術的飛速發展,云電腦逐漸走進了人們的視野。它像一朵神奇的云,承載著我們的數據和應用,讓我們隨時隨地都能享受到高效的計算服務。今天就為大家介紹蘋果電腦搭建私有云的詳細操作步驟
    的頭像 發表于 01-17 10:17 ?83次閱讀
    蘋果電腦搭建<b class='flag-5'>私有</b>云,蘋果電腦搭建<b class='flag-5'>私有</b>云的詳細操作步驟

    用普通電腦搭建私有云,用普通電腦搭建私有云教程

    隨著云存儲的普及,越來越多的用戶開始考慮搭建自己的私有云系統。那普通電腦也能搭建私有云嗎?當然可以,并且方法很簡單。首先,私有云是什么?與公有云存儲不同,
    的頭像 發表于 01-13 13:55 ?115次閱讀
    用普通電腦搭建<b class='flag-5'>私有</b>云,用普通電腦搭建<b class='flag-5'>私有</b>云教程

    電腦制作私有云盤,電腦制作私有云盤的教程,個人云電腦是什么以及怎么連接

    繳費,告別停車難困擾。無人駕駛出租車通過遠程云控保障行駛安全,未來出行因遠程連接變得智能、便捷、舒適。接下來和大家一起探索電腦制作私有云盤的教程。 ? ?電腦制作私有云盤的教程: ? ?制作電腦私有云盤,先選擇合適的
    的頭像 發表于 12-30 14:08 ?87次閱讀
    電腦制作<b class='flag-5'>私有</b>云盤,電腦制作<b class='flag-5'>私有</b>云盤的教程,個人云電腦是什么以及怎么連接

    電腦安裝聯想私有云,電腦如何安裝聯想私有云?

    ? ? 在局域網環境中,云電腦工具是企業實現高效內部管理和協作的重要工具。這些軟件不僅能夠幫助企業提升工作效率,還能增強信息安全和監控能力。今天小編要講解電腦如何安裝聯想私有云。 ? ?在電腦上安裝
    的頭像 發表于 12-25 13:34 ?180次閱讀
    電腦安裝聯想<b class='flag-5'>私有</b>云,電腦如何安裝聯想<b class='flag-5'>私有</b>云?

    私有云電腦是什么,私有云電腦是什么,個人云電腦是什么以及怎么連接

    的關系更加親密無間。接下來和大家一起探索私有云電腦是什么。 ? ?私有云電腦是什么: ? ?私有云電腦是一種相對公有云電腦而言,將云計算資源部署在企業、家庭等私有環境中的電腦使用模式。
    的頭像 發表于 12-25 13:28 ?97次閱讀
    <b class='flag-5'>私有</b>云電腦是什么,<b class='flag-5'>私有</b>云電腦是什么,個人云電腦是什么以及怎么連接

    SAP ERP 私有云和RISE with SAP 有什么區別?

    SAP ERP 私有云版是一款 ERP 云解決方案,也是 RISE with SAP 的核心。SAP ERP 私有云版是SAP公司提供的一種企業資源規劃(ERP)解決方案,它結合了傳統的SAP
    的頭像 發表于 11-18 09:20 ?348次閱讀

    k8s可以部署私有云嗎?私有云部署全攻略

    Kubernetes(簡稱K8S)可以部署私有云。Kubernetes是一個開源的容器編排引擎,能夠自動化容器的部署、擴展和管理,使得應用可以在各種環境中高效運行。通過使用Kubernetes,企業可以在自己的數據中心或私有云環境中搭建和管理容器化的應用,實現高度的靈活性
    的頭像 發表于 10-25 09:32 ?196次閱讀

    公有IP與私有IP之間的區別

    今天我們來分享私有IP地址和公有IP地址的有什么區別?主要從接入方式、特點以及各自的優勢來說明。
    的頭像 發表于 09-21 10:49 ?547次閱讀

    美國洛杉磯私有云核心優勢是什么?

    美國洛杉磯私有云以其高安全性、優越的地理位置、強大的硬件資源和出色的服務質量而備受全球企業和個人用戶的青睞。在全球化的科技與經濟格局中,選擇一個合適的私有云服務平臺對于企業和個人的數字化轉型至關重要。Rak部落為您整理發布美國洛杉磯私有
    的頭像 發表于 08-12 10:21 ?225次閱讀

    基于WDS的天瑞水泥企業高性能私有云存儲方案

    基于WDS的天瑞水泥企業高性能私有云存儲方案
    的頭像 發表于 07-31 09:47 ?341次閱讀
    基于WDS的天瑞水泥企業高性能<b class='flag-5'>私有</b>云存儲方案

    綠聯NAS DXP系列發布:內網穿透技術在私有云的應用分析

    對于NAS私有云來說,內外穿透會在不同網絡環境(如內網和外網)之間實現數據訪問和共享的能力,在這個背景下,內外穿透技術對于NAS私有云來說可能具有以下潛在應用
    的頭像 發表于 05-24 12:06 ?429次閱讀
    綠聯NAS DXP系列發布:內網穿透技術在<b class='flag-5'>私有</b>云的應用分析

    請問可以私有部署嗎

    有沒有插件或者私有部署的服務
    發表于 02-01 16:00
    主站蜘蛛池模板: 网站毛片| 日本x色视频| 男女一进一出抽搐免费视频| 亚洲不卡视频在线| 精品热99| 香蕉爱爱网| 亚洲欧美圣爱天天综合| 资源视频在线观看| 亚洲一区二区黄色| 日日干天天草| 2017天天干| 热久久久| 亚洲精品456| 日日夜夜天天人人| 久久综合精品视频| a天堂影院| 日本在线视| 午夜黄网| kkkbo色综合| 色婷婷中文字幕| 激情五月开心婷婷| 一级美女视频| 黑人黑粗硬视频| kkk4444免费观看| 69久久夜色精品国产69小说| 午夜日韩精品| 美女露出尿囗| 夜夜骚视频| 国产精品久久久久久久牛牛 | 午夜嘿嘿| 五月综合激情视频在线观看| 欧美一级一一特黄| 成年啪啪网站免费播放看| 色3344| 好紧好爽的午夜寂寞视频| 欧美性黑人极品1819hd| 亚洲伦理一区| 天堂网在线资源www种子| 久久国产乱子伦精品免| 午夜精品视频在线| 四虎黄色网|