最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python面向?qū)ο缶幊讨惖姆庋b

 更新時間:2021年11月01日 11:56:35   作者:一碗周  
這篇文章主要介紹了Python面向?qū)ο缶幊讨惖姆庋b封裝指屬性和方法的抽象,屬性的抽象又指對類的屬性進行定義、隔離和保護,下面來看看文章的具體內(nèi)容吧,需要的朋友可以參考一下,希望對你有所幫助

1、封裝的理解

封裝(Encapsulation):屬性和方法的抽象

屬性的抽象:對類的屬性(變量)進行定義、隔離和保護

分為私有屬性和公開屬性

  • 私有屬性:只能在類內(nèi)部訪問
  • 公開屬性:可以通過類、對象名訪問

可以選擇公開或隱藏屬性,隱藏屬性的內(nèi)在機理

方法的抽象:對類的方法(函數(shù))進行定義、隔離和保護

分為私有方法和公開方法:

  • 私有方法:只能在類內(nèi)部訪問
  • 公開方法:可以通過類、對象名訪問

可以選擇公開或隱藏方法,隱藏方法的內(nèi)部邏輯

  • 目標(biāo)是形成一個對外可操作屬性和方法的接口

封裝就是讓數(shù)據(jù)和代碼稱為類的過程,表達為:類——屬性——方法

2、私有類屬性、公開類屬性、私有實例屬性和公開實例屬性

2.1 公開類屬性

公開類屬性就是類屬性,語法結(jié)構(gòu)

class ClassName:
    <類屬性名> = <類屬性初值>
    def __init__(self,[參數(shù)1], [參數(shù)2], ...[參數(shù)n]):
        self.<實例屬性名> = <實例屬性初值>
    ...

2.2 私有類屬性

私有類屬性只能當(dāng)前類進行訪問,子類不能訪問。語法結(jié)構(gòu)

class ClassName:
    <__私有類屬性名> = <私有類屬性初值>
    def __init__(self,[參數(shù)1], [參數(shù)2], ...[參數(shù)n]):
        self.<實例屬性名> = <實例屬性初值>
    ...

.<類屬性>或者<對象名>.<類屬性>的方式訪問

有效保證了屬性維護的可控性

示例代碼如下:

class TestClass:
    __number = 0

    def __init__(self, num_value):
        for i in range(num_value + 1):
            TestClass.__number += i

    @classmethod  # 類方法
    def sum_number(cls):
        return TestClass.__number


value1 = TestClass(100)
print(TestClass.sum_number())  # 5050
# print(value1.__number)  # AttributeError: 'TestClass' object has no attribute '__number'

在類外賣訪問.__number就會報出AttributeError異常

2.3 公開實例屬性

公開實例屬性就等于示例屬性,語法結(jié)構(gòu)

class <類名>:
    <類屬性名> = <類方法值>
    def __init__(self, <參數(shù)列表>):
        self.<實例屬性名> = <實例屬性值>
    ...

2.4 私有實例屬性

私有實例屬性只能在當(dāng)前類內(nèi)部使用,子類也不能使用。語法結(jié)構(gòu)

class <類名>:
    <類屬性名> = <類方法值>
    def __init__(self, <參數(shù)列表>):
        self.<__私有實例屬性名> = <實例屬性值>
    ...

.<類屬性>或者<對象名>.<類屬性>的方式訪問

有效保證了屬性維護的可控性

示例代碼:

class TestClass:

    def __init__(self, num_value):
        self.__number = 0
        for i in range(num_value + 1):
            self.__number += i

    def sum_number(self):
        return self.__number


value1 = TestClass(100)
print(value1.sum_number())  # 5050
# print(value1.__number)  # AttributeError: 'TestClass' object has no attribute '__number'

2.5 私有屬性不一定真的私有

私有屬性的雙下劃線只是一種轉(zhuǎn)換約定,轉(zhuǎn)換后,類內(nèi)原有名字發(fā)生了變化,這是一種形式上的私有

示例代碼:

class TestClass:

    def __init__(self, num_value):
        self.__number = 0
        for i in range(num_value + 1):
            self.__number += i

    def sum_number(self):
        return self.__number


value1 = TestClass(100)
print(value1.sum_number())  # 5050
print(value1._TestClass__number)  # 5050
# 可以通過 對象名._類名__屬性 的方式來訪問

可以通過對象名._類名__屬性的方式來訪問。

3、私有方法和公開方法

定義方法是在類內(nèi)部定義并使用的方法。語法結(jié)構(gòu)

class <類名>:
    def <__私有方法名>(self, <參數(shù)列表>):
        ...

私有方法定義的時候?qū)傩悦智懊嫘枰獌蓚€下劃線( __ ).

各類方法都可以通過增加雙下?lián)Q線的方式將方法變?yōu)樗接蟹椒?/p>

私有方法在形式上保護了Python類內(nèi)部使用的函數(shù)邏輯

私有屬性與公開是程序員邏輯,不是安全邏輯,重視約定

4、類的保留屬性

Python解釋器預(yù)留的類屬性,以雙下?lián)Q線開頭或者結(jié)尾。

  • 保留屬性也叫特殊屬性
  • 以雙下劃線開頭和結(jié)尾
  • 作用是為理解Python類提供了統(tǒng)一的屬性接口
  • 屬性值具有特殊的含義,類定義后直接使用

僅用<類名>訪問的保留屬性

保留屬性 描述
__name__ 類的名詞
__qualname__ 以.分隔從模板全局命名空間開始的類名稱
__bases__ 類所繼承的基類名稱

5、類的保留方法

保留方法是Python解釋器預(yù)留的方法,以雙下劃線開頭和結(jié)尾

  • 保留方法也叫特殊方法
  • 以雙下劃線開頭和結(jié)尾
  • 作用是為理解Python類提供了統(tǒng)一的方法接口
  • 方法邏輯:具有特定的含義,一般與操作符關(guān)聯(lián),類定義需要重載

到此這篇關(guān)于Python面向?qū)ο缶幊讨惖姆庋b的文章就介紹到這了,更多相關(guān)Python類的封裝內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python-ElasticSearch搜索查詢的講解

    Python-ElasticSearch搜索查詢的講解

    今天小編就為大家分享一篇關(guān)于Python-ElasticSearch搜索查詢的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • python的pygal模塊繪制反正切函數(shù)圖像方法

    python的pygal模塊繪制反正切函數(shù)圖像方法

    在本篇文章中我們給大家整理了關(guān)于如何用python的pygal模塊繪制反正切函數(shù)圖像的知識點內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2019-07-07
  • Python對象循環(huán)引用垃圾回收算法詳情

    Python對象循環(huán)引用垃圾回收算法詳情

    這篇文章主要介紹了Python對象循環(huán)引用垃圾回收算法詳情,文章圍繞主題展開詳細的內(nèi)容戒殺,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-09-09
  • Python實現(xiàn)提取XML內(nèi)容并保存到Excel中的方法

    Python實現(xiàn)提取XML內(nèi)容并保存到Excel中的方法

    這篇文章主要介紹了Python實現(xiàn)提取XML內(nèi)容并保存到Excel中的方法,涉及Python針對xml文件的讀取、解析以及Excel文件的寫入、保存等相關(guān)操作技巧,需要的朋友可以參考下
    2018-09-09
  • python hbase讀取數(shù)據(jù)發(fā)送kafka的方法

    python hbase讀取數(shù)據(jù)發(fā)送kafka的方法

    今天小編就為大家分享一篇python hbase讀取數(shù)據(jù)發(fā)送kafka的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 搞笑的程序猿:看看你是哪種Python程序員

    搞笑的程序猿:看看你是哪種Python程序員

    這篇文章主要介紹了搞笑的程序猿:看看你是哪種Python程序員,不久前,在互聯(lián)網(wǎng)上出現(xiàn)了一篇有趣的文章,講的是對于同一個問題,不同層次的Python程序員編出的Python代碼,顯示出了不同的風(fēng)格,代碼都很簡單,有趣,需要的朋友可以參考下
    2015-06-06
  • python 裝飾器詳解與應(yīng)用范例

    python 裝飾器詳解與應(yīng)用范例

    裝飾器是 Python 的一個重要部分。簡單地說:他們是修改其他函數(shù)的功能的函數(shù)。他們有助于讓我們的代碼更簡短,也更Pythonic。大多數(shù)初學(xué)者不知道在哪兒使用它們,所以我將要分享下,哪些區(qū)域里裝飾器可以讓你的代碼更簡潔。 首先,讓我們討論下如何寫你自己的裝飾器
    2021-11-11
  • 初探TensorFLow從文件讀取圖片的四種方式

    初探TensorFLow從文件讀取圖片的四種方式

    本篇文章主要介紹了初探TensorFLow從文件讀取圖片的四種方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • 在Linux下使用命令行安裝Python

    在Linux下使用命令行安裝Python

    這篇文章主要介紹了在Linux下使用命令行安裝Python,通過詳細的圖文介紹Linux安裝Python的全部過程,希望對你有所幫助
    2021-06-06
  • Python出現(xiàn)segfault錯誤解決方法

    Python出現(xiàn)segfault錯誤解決方法

    這篇文章主要介紹了Python出現(xiàn)segfault錯誤解決方法,分析了系統(tǒng)日志提示segfault錯誤的原因與對應(yīng)的解決方法,需要的朋友可以參考下
    2016-04-04

最新評論

封开县| 大渡口区| 临城县| 航空| 尼玛县| 宣化县| 池州市| 黑龙江省| 北碚区| 犍为县| 平安县| 若羌县| 婺源县| 临猗县| 湾仔区| 清河县| 婺源县| 健康| 松滋市| 南召县| 宜兴市| 修武县| 枣阳市| 长垣县| 安远县| 北票市| 安徽省| 云浮市| 湟源县| 望江县| 平远县| 七台河市| 贵德县| 荃湾区| 淳安县| 广水市| 宜良县| 略阳县| 泾阳县| 萨嘎县| 邹城市|