精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

python的類訪問控制

馬哥Linux運維 ? 來源:lq ? 2018-12-10 16:39 ? 次閱讀

python類中,有屬性和方法,外部代碼可以直接通過實例來訪問修改。

如果需要讓內部的屬性不被外部訪問到,在屬性變量前面加上__2個下劃線。

在python中,實例的變量名如果是由__2個下花錢開頭的,就代表這是一個私有變量:只有內部可以訪問,外部不許直接通過類或者實例訪問。

代碼:

雖然說外部訪問不了一個內部私有屬性,但是可以通過類中方法間接的訪問、修改

類內部方法getname和setname:

雙下劃線開頭的私有屬性,是不是一定不能從外部訪問呢?

其實不是的:

python中2個有趣的現象,外部變量遮蔽類中的變量。

從實例中訪問類屬性必須要謹慎。

和通常python變量一樣,任何對實例屬性的賦值都會創建一個實例屬性(如果實例屬性不存在的話),并且對其賦值。

但是,如果類屬性中存在同名的屬性,就是產生前面所說的有趣的副作用。

python3.x依舊存在這個情況。

下面上代碼:

為什么下面的dict類型的就會del報錯呢??

原因在于:python是由c寫成的cpython。

c語言中,并沒有字符串這個概念:c中叫做字符數組,存儲在內存中,是一塊連續的空間,不可修改,任何修改字符數組的行為,都會在不影響原始的字符數組下,創建產生一個新的字符數組。

而dict就不一樣了,它在內存中存儲,是一系列非連續的內存空間,可以在原來的基礎上修改,所以,第二個例子中del f.x就會報錯。

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

    關注

    180

    文章

    7598

    瀏覽量

    136194
  • python
    +關注

    關注

    56

    文章

    4782

    瀏覽量

    84453

原文標題:python的類訪問控制

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何使用Python? 優勢有哪些?

    pupil.print_score () 語句,調用實例的方法就是調用的方法,而這個方法是按照格式打印出  pupil.name:pupil.score,mlilei: 99。  Python優勢有哪些?  1.
    發表于 07-30 18:08

    python的理解與使用

    新式的寫法,與之對應的是 Python 2 的經典寫法。3. 如何實例化?定義了之后,就可以通過下邊的寫法實例化它,并訪問屬性,調用方
    發表于 03-07 16:51

    python的多態和的property屬性

    python的多態多態,是指在同一型下的不同形態。比如下面這段代碼class People: def speak(self):passclass American(People): def
    發表于 03-09 16:38

    python開發之‘’講解

    Python 在盡可能不增加新的語法和語義的情況下加入了機制。這種機制是 C++ 和 Modula-3 的混合。 Python中的沒有在用戶和定義之間建立一個絕對的屏障,而是依賴于
    發表于 03-15 14:12 ?1次下載

    揭開Python中self的神秘面紗

    許多python初學者,在接觸到python面向對象的時候,就被中包含的方法中的self打敗了,不知道self是何物?
    的頭像 發表于 01-19 17:51 ?1759次閱讀
    揭開<b class='flag-5'>Python</b><b class='flag-5'>類</b>中self的神秘面紗

    為什么要學習PythonPython的定義是怎么樣的應該如何使用

    無法訪問私有變量,從而保證的設計思想和內部結構并不完全對外公開。在 Python中除了xxx格式的成員變量外,其他的成員變量都是公有變量。
    發表于 09-02 17:50 ?12次下載
    為什么要學習<b class='flag-5'>Python</b>?<b class='flag-5'>Python</b>中<b class='flag-5'>類</b>的定義是怎么樣的應該如何使用

    10種聚介紹和Python代碼

    分享一篇關于聚的文章,10種聚介紹和Python代碼。
    的頭像 發表于 07-30 10:25 ?3024次閱讀

    簡述python和實例屬性賦值

    python主體沒有任何內容,只有pass語句,稱為空。 ## 1.2 obj.attr屬性賦值 通過obj.attr=value進行和實例屬性賦值。
    的頭像 發表于 02-21 10:30 ?1009次閱讀

    Python的屬性和方法是什么

    編程中我們用來創建對象。日常生活中的汽車設計圖就是我們Python中的。日常生活中的小汽車就是Python中的對象。
    的頭像 發表于 02-23 10:17 ?841次閱讀

    什么是python與對象

    Python中的,type函數查看數據類型
    的頭像 發表于 02-23 10:18 ?729次閱讀

    Python中輕松調用Java方法-PyJNIus

    PyJNIus 是一個神奇的 Python 第三方模塊。它能使用Java本地接口將Java作為Python訪問
    的頭像 發表于 02-24 13:49 ?1693次閱讀

    Python中的和對象詳解

    Python 是一種面向對象的編程語言,它支持和對象。是一種用戶自定義的數據類型,用于定義對象的屬性和方法。對象是的實例,它包含的屬
    的頭像 發表于 04-20 16:53 ?1058次閱讀

    PyJNIus:在Python中輕松調用Java方法

    PyJNIus 是一個神奇的 Python 第三方模塊。它能使用Java本地接口將Java作為Python訪問
    的頭像 發表于 10-30 11:32 ?863次閱讀

    PyJNIus :讓你在Python中輕松調用Java方法

    PyJNIus 是一個神奇的 Python 第三方模塊。它能使用Java本地接口將Java作為Python訪問
    的頭像 發表于 11-01 10:45 ?797次閱讀

    Python中元的作用

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