吴忠躺衫网络科技有限公司

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

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

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

Python的只讀屬性定義方法

汽車玩家 ? 來源:今日頭條 ? 作者:我愛學(xué)Python ? 2020-01-18 09:48 ? 次閱讀

Python是面向?qū)ο?OOP)的語言, 而且在OOP這條路上比Java走得更徹底, 因?yàn)樵赑ython里, 一切皆對(duì)象, 包括int, float等基本數(shù)據(jù)類型.

在Java里, 若要為一個(gè)類定義只讀的屬性, 只需要將目標(biāo)屬性用private修飾, 然后只提供getter()而不提供setter(). 但Python沒有private關(guān)鍵字, 如何定義只讀屬性呢? 有兩種方法, 第一種跟Java類似, 通過定義私有屬性實(shí)現(xiàn). 第二種是通過__ setattr__.

通過私有屬性

用私有屬性+@property定義只讀屬性, 需要預(yù)先定義好屬性名, 然后實(shí)現(xiàn)對(duì)應(yīng)的getter方法.,如果對(duì)屬性還不懂。

輸出:

可以看出, 屬性x是可讀但不可寫的.

通過 __ setattr__當(dāng)我們調(diào)用obj.attr=value時(shí)發(fā)生了什么?

很簡(jiǎn)單, 調(diào)用了obj的__ setattr__方法. 可通過以下代碼驗(yàn)證:

輸出:

所以呢, 只需要在__ setattr__ 方法里擋一下, 就可以阻止屬性值的設(shè)置, 可謂是釜底抽薪.

代碼:

輸出:

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

    關(guān)注

    19

    文章

    2975

    瀏覽量

    105157
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4807

    瀏覽量

    85041
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Chart FX-使用API傳輸數(shù)據(jù) 使用Value屬性傳輸數(shù)據(jù)

    有時(shí),向 Chart FX 傳輸數(shù)值數(shù)據(jù)最簡(jiǎn)單方便的方法就是使用 Value 屬性。通過 Value 屬性,您可以為圖表中特定series中的某一point設(shè)置數(shù)值。 Value 屬性
    的頭像 發(fā)表于 01-09 16:30 ?124次閱讀
    Chart FX-使用API傳輸數(shù)據(jù) 使用Value<b class='flag-5'>屬性</b>傳輸數(shù)據(jù)

    Chart FX之DataGrid電子表格

    通過禁用只讀屬性來實(shí)現(xiàn)其可編輯性,如下圖所示。 此外,DataGrid 還允許開發(fā)人員通過使用每個(gè)單元格的屬性,在非常細(xì)的級(jí)別上完全自定義外觀和感覺。 單元格
    的頭像 發(fā)表于 01-06 10:59 ?118次閱讀
    Chart FX之DataGrid電子表格

    Python中dict支持多個(gè)key的方法

    ? 在Python中,字典(dict)是一種非常強(qiáng)大的數(shù)據(jù)結(jié)構(gòu),它允許我們通過鍵(key)來存儲(chǔ)和檢索值(value)。有時(shí)候,我們可能想要根據(jù)多個(gè)鍵來檢索或操作字典中的數(shù)據(jù)。雖然Python的字典
    的頭像 發(fā)表于 11-29 15:59 ?214次閱讀

    只讀存儲(chǔ)器的基本結(jié)構(gòu)和工作過程

    只讀存儲(chǔ)器(Read-Only Memory,ROM)是一種重要的計(jì)算機(jī)存儲(chǔ)設(shè)備,它以非破壞性讀出方式工作,即只能讀出存儲(chǔ)的信息而無法直接寫入新的信息。這種特性使得ROM在存儲(chǔ)固定程序和數(shù)據(jù)方面具有獨(dú)特的優(yōu)勢(shì)。下面將詳細(xì)闡述只讀存儲(chǔ)器的基本結(jié)構(gòu)、工作過程以及相關(guān)的技術(shù)細(xì)節(jié)
    的頭像 發(fā)表于 09-05 10:43 ?1374次閱讀

    如何實(shí)現(xiàn)Python復(fù)制文件操作

    Python 中有許多“開蓋即食”的模塊(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在這篇文章中,你將會(huì)看到一些用 Python 實(shí)現(xiàn)文件復(fù)制的特殊方法。下面我們開始學(xué)習(xí)這九種不同的
    的頭像 發(fā)表于 07-18 14:53 ?479次閱讀

    基于Python的深度學(xué)習(xí)人臉識(shí)別方法

    基于Python的深度學(xué)習(xí)人臉識(shí)別方法是一個(gè)涉及多個(gè)技術(shù)領(lǐng)域的復(fù)雜話題,包括計(jì)算機(jī)視覺、深度學(xué)習(xí)、以及圖像處理等。在這里,我將概述一個(gè)基本的流程,包括數(shù)據(jù)準(zhǔn)備、模型選擇、訓(xùn)練過程、以及測(cè)試與評(píng)估,并附上簡(jiǎn)單的代碼示例。
    的頭像 發(fā)表于 07-14 11:52 ?1324次閱讀

    ESP32下如何加自定義Python庫?

    我看官方有提供Micropython的bin文件,但我想根據(jù)自己外設(shè)擴(kuò)充一下Python庫,這個(gè)應(yīng)該從哪里入手? 之前做過RTT系統(tǒng)的python庫擴(kuò)充,RTT有提供Micropython的源代碼,直接在里面加自己的庫就行 ESP32下如何加自
    發(fā)表于 06-18 06:27

    Linux的declare/typeset命令介紹

    ,即使在函數(shù)內(nèi)定義變量-i:聲明整型變量-l:將變量值的小寫字母變?yōu)樾?r:設(shè)置只讀屬性-t:設(shè)置變量跟蹤屬性,用于跟蹤函數(shù)進(jìn)行調(diào)試,對(duì)于變量沒有特殊意義-u:變量值的大寫字母變?yōu)榇?/div>
    發(fā)表于 04-08 07:03

    基于Python的地圖繪制教程

    本文將介紹通過Python繪制地形圖的方法,所需第三方Python相關(guān)模塊包括 rasterio、geopandas、cartopy 等,可通過 pip 等方式安裝。
    的頭像 發(fā)表于 02-26 09:53 ?1312次閱讀
    基于<b class='flag-5'>Python</b>的地圖繪制教程

    arcgis中如何在屬性表中選擇多個(gè)屬性

    在ArcGIS中,你可以通過多種方式來選擇屬性表中的多個(gè)屬性。下面是一些常用的方法方法一:使用Select by Attributes工具 在ArcGIS的
    的頭像 發(fā)表于 02-25 11:10 ?1.5w次閱讀

    arcgis按屬性選擇not(t)怎么用

    ArcGIS是一款強(qiáng)大的地理信息系統(tǒng)軟件,用于處理和分析地理數(shù)據(jù)。通過屬性選擇工具,用戶可以基于數(shù)據(jù)的屬性條件來選擇特定的要素。 在ArcGIS中,屬性選擇的語法是基于結(jié)構(gòu)化查詢語言(SQL),可以
    的頭像 發(fā)表于 02-25 11:08 ?4383次閱讀

    mapgis如何進(jìn)行屬性連接

    地理解和分析數(shù)據(jù)。 屬性連接通常用于將一層中的字段信息與另一層中的對(duì)應(yīng)字段信息進(jìn)行匹配,從而將兩個(gè)地圖層的屬性數(shù)據(jù)聯(lián)系起來。通過屬性連接,我們可以通過共同字段或屬性來查找、篩選和分析數(shù)
    的頭像 發(fā)表于 02-25 10:59 ?1766次閱讀

    mapgis區(qū)屬性賦參數(shù)

    賦值。本文將介紹MapGIS區(qū)屬性賦參數(shù)功能,包括其定義、應(yīng)用場(chǎng)景、操作步驟和特點(diǎn)等內(nèi)容。 一、定義 MapGIS區(qū)屬性賦參數(shù)是指在地理空間數(shù)據(jù)中,根據(jù)不同的區(qū)域特征和
    的頭像 發(fā)表于 02-25 10:56 ?1170次閱讀

    mapgis如何給區(qū)屬性賦值

    地進(jìn)行數(shù)據(jù)分析和可視化。 在MapGIS中給區(qū)屬性賦值有多種方法,下面將詳細(xì)介紹其中的幾種常用方法。 1.手動(dòng)賦值 手動(dòng)賦值是最直接和簡(jiǎn)單的方法。首先,在MapGIS中打開需要進(jìn)行
    的頭像 發(fā)表于 02-23 17:49 ?2404次閱讀

    proteus屬性賦值工具怎么用

    Proteus是一種電路設(shè)計(jì)和仿真軟件,在進(jìn)行電路設(shè)計(jì)和仿真時(shí),屬性賦值是非常重要的步驟。屬性賦值工具可以幫助用戶快速有效地配置電路元件的屬性,從而實(shí)現(xiàn)電路的準(zhǔn)確仿真。下面是關(guān)于Proteus
    的頭像 發(fā)表于 02-23 17:19 ?4832次閱讀
    大发888存款| 百家乐官网真人娱乐注册| 百家乐官网新注册送彩金| 真人百家乐导航| 大发888娱乐城 casino| 澳门百家乐官网大家乐眼| 澳门百家乐职业赌客| 大赢家娱乐城怎么样| 百家乐官网路子技巧| 免费百家乐分析工具| 在线百家乐官网怎么下注| 皇冠现金网哪个最好| 大发888赢速通充值| 百家乐官网翻天qvod| 足球百家乐网上投注| 利来娱乐网| 百家乐官网扑克牌手机壳| 大发888大发888体育| 狮威百家乐官网娱乐网| 百家乐博弈指| 百家乐官网群柏拉图软件| 百家乐输一押二| 百家乐官网视频游戏会员| 百家乐赢退输进有哪些| 独赢百家乐官网全讯网| 百家乐新送彩金| 在线百家乐官网大家赢| 百家乐翻天粤语版| 百家乐官网实战技术| 网上百家乐骗人的吗| 莱芜市| 百家乐gamble| 百家乐官网硬币打法| 百家乐分析仪有真的吗| 网上百家乐官网骗人的吗| 百家乐秘籍下注法| 百家乐投资| 百家乐官网网上真钱赌场娱乐网规则| 大发888下载安全的| 可以玩百家乐官网的博彩网站| 二八杠游戏|