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

Python中通過property設(shè)置類屬性的訪問

 更新時間:2023年09月05日 15:06:32   作者:棉猴  
為了達(dá)到類似C++類的封裝性能,可以使用property來設(shè)置Python類屬性的訪問權(quán)限,本文就介紹一下Python中通過property設(shè)置類屬性的訪問,感興趣的可以了解一下,感興趣的可以了解一下

Python類的所有屬性都是公共的,無法將其設(shè)置為私有,即任何實例對象都可以通過該屬性名對其進(jìn)行訪問。為了達(dá)到類似C++類的封裝性能,可以使用property來設(shè)置Python類屬性的訪問權(quán)限。

類的封裝性能,指的是只能通過指定的方法對類的屬性進(jìn)行訪問。因此,首先為類定義訪問屬性的方法。

1 定義訪問類屬性的方法

代碼如下所示

class A:
????def __init__(self, name):
????????self.name = name
????def get_name(self):
????????return self.name
????def set_name(self, name):
????????self.name = name

其中,類A有一個名為name的屬性,通過get_name()方法獲取該屬性,通過set_name()方法設(shè)置該屬性。

2 使用property()設(shè)置訪問類屬性的方法

在定義完獲取和設(shè)置屬性的方法之后,在類A的內(nèi)部使用property()設(shè)置訪問類屬性的方法,代碼如下所示。

name = property(get_name, set_name)

其中,property()的第一個參數(shù)表示獲取指定屬性時要調(diào)用的方法,第二個參數(shù)表示設(shè)置指定屬性時要調(diào)用的方法。

3 獲取和設(shè)置指定屬性

通過如下代碼獲取和設(shè)置指定屬性。

a1 = A('yang')
print(a1.my_name)
a1.my_name = 'li'
print(a1.my_name)

第一個print()中打印的是a1.my_name,此時實際上調(diào)用的是property()的第一個參數(shù),即get_name()獲取類A的屬性name;之后通過a1.my_name設(shè)置類A的屬性name,此時調(diào)用的是類A的set_name()方法。

4 property()擴(kuò)展用法

在“2 使用property()設(shè)置訪問類屬性的方法”中提到了property()前兩個參數(shù)的含義。property()第三個參數(shù)表示在刪除(del)實例對象時,自動調(diào)用的方法,而第四個參數(shù)的類型是字符串,表示對類的描述,在顯示__doc__屬性時顯示。

在類A的內(nèi)部添加如下代碼:

def del_name(self):
????????print('del_name')
my_name = property(get_name, set_name, del_name, '我是類A')

之后,在主程序中使用如下代碼

print(A.my_name.__doc__)
del a1.my_name

此時,程序會打印“我是類A”和“del_name”信息。

到此這篇關(guān)于Python中通過property設(shè)置類屬性的訪問的文章就介紹到這了,更多相關(guān)Python property設(shè)置類屬性內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中用altzone()方法處理時區(qū)的教程

    Python中用altzone()方法處理時區(qū)的教程

    這篇文章主要介紹了Python中用altzone()方法處理時區(qū)的教程,是Python入門中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • Python實現(xiàn)文件及文件夾操作大全

    Python實現(xiàn)文件及文件夾操作大全

    在日常工作或生活中,總避免不了需要操作文件或文件夾,本文主要介紹了Python實現(xiàn)文件及文件夾操作大全,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • 深入解讀Python解析XML的幾種方式

    深入解讀Python解析XML的幾種方式

    這篇文章主要為大家詳細(xì)介紹了深入解讀Python解析XML的幾種方式,以ElementTree模塊為例,演示具體使用方法和場景,感興趣的小伙伴們可以參考一下
    2016-02-02
  • tensorflow 只恢復(fù)部分模型參數(shù)的實例

    tensorflow 只恢復(fù)部分模型參數(shù)的實例

    今天小編就為大家分享一篇tensorflow 只恢復(fù)部分模型參數(shù)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python正確讀取文件路徑的三種方式

    python正確讀取文件路徑的三種方式

    這篇文章主要介紹了python正確讀取文件路徑的三種方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • MacOS(M1芯片?arm架構(gòu))下安裝tensorflow的詳細(xì)過程

    MacOS(M1芯片?arm架構(gòu))下安裝tensorflow的詳細(xì)過程

    這篇文章主要介紹了MacOS(M1芯片?arm架構(gòu))下如何安裝tensorflow,本節(jié)使用的版本是tensorflow2.4?python3.8,因此并未安裝加速插件,本文結(jié)合實例代碼詳細(xì)講解,需要的朋友可以參考下
    2023-02-02
  • 淺談tensorflow 中tf.concat()的使用

    淺談tensorflow 中tf.concat()的使用

    今天小編就為大家分享一篇淺談tensorflow 中tf.concat()的使用,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python 多線程通信的常用方法匯總

    Python 多線程通信的常用方法匯總

    Python中常用的線程通信方式主要有共享變量、Queue、Event、Condition、Semaphore和Barrier,這些方法都通過鎖機制保證線程安全,用于實現(xiàn)多線程之間的通信和數(shù)據(jù)交換,本文介紹Python 之多線程通信的幾種常用方法,感興趣的朋友跟隨小編一起看看吧
    2026-01-01
  • Python結(jié)合pywebview打造輕量級桌面應(yīng)用的完整教學(xué)

    Python結(jié)合pywebview打造輕量級桌面應(yīng)用的完整教學(xué)

    pywebview 是一個輕量級的跨平臺Python庫,它允許你在一個原生窗口中嵌入Web技術(shù)來構(gòu)建GUI界面,下面我們就來看看Python如何使用pywebview打造輕量級桌面應(yīng)用吧
    2026-05-05
  • python圖像加噪聲的實現(xiàn)示例

    python圖像加噪聲的實現(xiàn)示例

    圖像加噪聲就是其中一種常見的處理方式,噪聲可以幫助提高圖像的真實性和復(fù)雜性,使得處理后的圖像更加接近真實的場景,本文主要介紹了python圖像加噪聲的實現(xiàn)示例,感興趣的可以了解一下
    2023-08-08

最新評論

平陆县| 奈曼旗| 银川市| 辽阳县| 房产| 通化市| 双流县| 北京市| 华容县| 洪雅县| 贵港市| 图们市| 三亚市| 平顶山市| 永昌县| 泸西县| 云南省| 吉水县| 长沙县| 哈尔滨市| 汽车| 武宣县| 肇州县| 铜梁县| 仲巴县| 威信县| 黄石市| 仁怀市| 本溪| 云安县| 高尔夫| 巴中市| 芒康县| 法库县| 高邮市| 南城县| 石泉县| 兰考县| 大新县| 沾益县| 谢通门县|