1. 程式人生 > >Python3之封裝property及使用

Python3之封裝property及使用

1.封裝的作用:使屬性私有,隱藏資料,使資料安全

2.封裝的形式:對類內使用__屬性名 或者__方法名,接著會進行變形,屬性名或者方法名會被變形為:_類名__屬性名的形式

3.2中的封裝形式只在類的定義階段生效,在定義完成後,物件呼叫__X只是在物件的名稱空間內創造了一個新的屬性__X

4.property的使用:
property

首先被property裝飾過的函式名會被當做物件的屬性名去用,比如:f.name,該函式名字被偽裝成了屬性名,當f.name被呼叫時,首先從物件自己這找一個叫name的屬性,自己這裡沒有跑去父類找,父類沒有原始的name屬性,但是有一個被property修飾的name屬性,找到後觸發name函式

的執行,得到一個返回值,這個self.__name中存放真正的函式值,函式值被返回後就給了f.name

其次當f.name = ‘wsx’時會觸發name.setter的執行,這時會將’wsx’賦值給value,value將值直接賦值給self.__name,將真正的值給更改掉

再次當del f.name時,會觸發name.deleter的執行將真正的值也就是self.__name給刪掉,查詢f.name時會再次觸發被property修飾的函式執行,而此時self.__name已經被刪除,會報AttributeError錯誤

相關推薦

Python3封裝property使用

1.封裝的作用:使屬性私有,隱藏資料,使資料安全 2.封裝的形式:對類內使用__屬性名 或者__方法名,接著會進行變形,屬性名或者方法名會被變形為:_類名__屬性名的形式 3.2中的封裝形式只在類的定義階段生效,在定義完成後,物件呼叫__X只是在物件的名稱空

Python3裝飾器---特殊屬性@property

特殊屬性 @property 主要是實現其他語言所擁有的getter和setter功能 作用: 用來模擬一個屬性 通過@property裝飾器,可以對模擬屬性的賦值和取值加以控制 舉個簡單的栗子: class Student: def _

.NET Core實戰專案CMS 第十二章 開發篇-Dapper封裝GURD倉儲程式碼生成器實現

本篇我將帶著大家一起來對Dapper進行下封裝並實現基本的增刪改查、分頁操作的同步非同步方法的實現(已實現MSSQL,MySql,PgSQL)。同時我們再實現一下倉儲層的程式碼生成器,這樣的話,我們只需要結合業務來實現具體的業務部分的程式碼就可以了,可以大大減少我們重複而又繁瑣的增刪改查操作,多留點時間給生活

.NET Core實戰專案CMS 第十二章 開發篇-Dapper封裝CURD倉儲程式碼生成器實現

本篇我將帶著大家一起來對Dapper進行下封裝並實現基本的增刪改查、分頁操作的同步非同步方法的實現(已實現MSSQL,MySql,PgSQL)。同時我們再實現一下倉儲層的程式碼生成器,這樣的話,我們只需要結合業務來實現具體的業務部分的程式碼就可以了,可以大大減少我們重複而又繁瑣的增刪改查操作,多留點時間給生活

C++精進篇(十)封裝、繼承、多型訪問許可權物件建立詳解

         面向物件的三個基本特徵是:封裝、繼承、多型。其中,封裝可以隱藏實現細節,使得程式碼模組化;繼承可以擴充套件已存在的程式碼模組(類);它們的目的都是為了——程式碼重用。而多型則是為了實現另一個目的——介面重用!                        

Python3 Web 框架:web框架的本質

但是 hub ima sgi 控制器 borde http ace esp 各位,學Python 的同誌,相信對 Django 、Flask、等不會陌生,這些就是Python語言的web 框架。 那麽問題來了,web 服務器又是什麽,他和web框架有什麽關系?他們又是如何工

CentOS 7 yum安裝lamp,三者位於不同服務器,並為安裝WordPressphpmyadmin

localhost 下載地址 wordpress 服務器 最新版 系統平臺:CentOS 7 1611WordPress下載地址phpMyAdmin下載地址(CentOS 7 建議不要安裝最新版,否則需要編譯最新的php-fpm)分別在三臺主機上安裝httpd(192.168.1.200)

maven maven簡介安裝

分享 運行 項目信息 ava 信息 專家 not 編碼 bin 1. maven:行內,專家。基於java的項目構建功能,依賴管理,項目信息管理,Maven是一個項目構建工具。 2.構建:指日常開發中經常完成的除了編碼外的一些動作。如:清理,編譯,測試,運行,報告,部署等動

maven 坐標倉庫

服務 默認 tid nbsp cti 位置 方式 轉義字符 pri 1. 坐標:指唯一定位一個構件(jar,war等)的方式。 2.指定坐標的方式: groupId:項目名,如spring.一般用組織域名倒寫的方式org.springframework.core

redis redis簡介下載安裝

移動 持久化 文檔 acl inf zxvf osql .cn ted 1. 數據庫的分類:關系型數據庫,非關系型數據庫(Nosql) 2.非關系型數據庫: 鍵值型數據庫:redis 等。 列式存儲數據庫: hbase 等。 文檔型數據庫 : mongoDB 等。 圖形數

IIS IIS 7以上多域名或端口綁定同一物理目錄並設置不同默認文檔

clas host doc ebs dex 導致 color 不同 amp   今天在 IIS 7 多端口或域名綁定同一物理目錄,設置不同的默認文檔遇到問題:同一物理目錄的多個站點修改任意一個站點默認文檔都會一起更改。   原因:在同一個物理目錄下只有一個 web.conf

JavaScript面向對象輕松入門封裝(demo by ES5、ES6、TypeScript)

get scrip 鏈式調用 class www 資料 怎麽辦 宋體 概念   本章默認大家已經看過作者的前一篇文章 《JavaScript面向對象輕松入門之抽象》 為什麽要封裝?   封裝(Encapsulation)就是把對象的內部屬性和方法隱藏起來,外部代碼訪問該對象

項目實戰AJAX訪問相關問題整理

.get ont class message 統一 comm pac 單點登錄 com   這篇主要寫在項目中AJAX的使用以及在解決登錄跳轉時遇到的問題,及解決辦法。   一、reqwest的使用   reqwest 是一種瀏覽器異步HTTP請求的封裝。支持xmlHttp

python3發送郵件

python 郵件#/usr/bin/env python3 # encoding: utf-8 [email protected]/* */: Lejie [email protected]/* */: PyCharm Community Edition [email pr

Python3函數對象】

變量 類型 程序語言 部分 函數對象 utf-8 cti 一個 title 函數對象 函數(Function)作為程序語言中不可或缺的一部分,但函數作為第一類對象(First-Class Object)卻是 Python 函數的一大特性。 那到底什麽是第一類對象(First

Python3socket編程】

最大 連接池 開始 protocol 例如 無需 starting 出錯 mes 一、socket的定義   Socket是應用層與TCP/IP協議族通信的中間軟件抽象層,它是一組接口。在設計模式中,Socket其實就是一個門面模式,它把復雜的TCP/IP協議族隱藏在Soc

Python3正則re】

關於 查看 ext 修改模式 cape last int 設定 nal 一、正則re 1.正則表達式定義 正則就是用一些具有特殊含義的符號組合到一起(稱為正則表達式)來描述字符或者字符串的方法。或者說:正則就是用來描述一類事物的規則。(在Python中)它內嵌在Pyt

Python3叠代器,生成器】

int clas pen pytho [] fun 異常 recent 開始 一、可叠代對象和叠代器 1.叠代的概念 上一次輸出的結果為下一次輸入的初始值,重復的過程稱為叠代,每次重復即一次叠代,並且每次叠代的結果是下一次叠代的初始值 註:循環不是叠代 while Tr

c語言循環打印問題A-FVC6++斷點開發工具的使用

images span 遞歸調用 for循環 開發 開發工具 ron pan def 1. 利用for循環輸出 ABCDEF 6個 1->6BCDEF 5個 2->6CDEF 4個 3->6DEF 3個 4->6EF

python3微信文章爬蟲

都得 range python3.4 close 關鍵詞 rdquo pla urlopen 表格 前提: python3.4 windows 作用:通過搜狗的微信搜索接口http://weixin.sogou.com/來搜索相關微信文章,並將標題及相關鏈接導入Excel表