首页
/
每日頭條
/
科技
/
python基礎面向對象
python基礎面向對象
更新时间:2024-10-05 09:12:33

本系列内容所用Python版本為anaconda,直接浏覽器搜索下載安裝即可!


前面内容我有多次提到過對象這個概念,今天我想專門出一期内容,淺談一下Python的對象這一基礎概念,并談談我對面向對象編程這一編程思想的理解,希望對後續内容的學習能起到一點幫助。

一、Python對象

簡單來說對象就是具體的實例。像字符串'lcm',當他被創建的時候,他就是一個字符串對象,是實際存在的,并不是抽象的

那麼對象是怎麼來的

首先要搞明白用于描述對象特征的數據信息稱為該對象的屬性,而存取屬性的函數叫做方法,是該對象與外界溝通的接口,具有相同屬性和方法的對象構成類,換言之類是對象抽象化而形成的概念,而對象則是類的具體實例,例如股票對象貴州茅台就是股票這個類的具體實例,面向對象編程有三大特征:封裝、繼承、多态

1.創建對象

搞清楚了對象是類的實例後,就明白想要創建對象先要有類,創建類的代碼形式同函數一樣,由class關鍵字打頭,随後是類的名稱以及繼承類的名稱,并以冒号(:)結尾,以下是類的一般創建形式

python基礎面向對象(Python基礎之對象面向對象編程)1

括号表示繼承自哪一類,如果沒有則填object,這是所有類繼承的源頭

有了類之後就可以創建具體的實例對象了

python基礎面向對象(Python基礎之對象面向對象編程)2

我們創建了一個對象asset1,它來自于Asset類

Python可以動态綁定實例對象的屬性

python基礎面向對象(Python基礎之對象面向對象編程)3

就這樣我們給對象asset2、asset3分别綁定了名字和價格屬性

以上案例演示了源自同一類的不同實例,藉由動态綁定的方法擁有不同屬性,雖然方便,但有悖于把類視為實體的模闆之慣例,若我們希望創建自同一個類的實例擁有一些共同特征,可以藉由定義一個特殊的__init__方法,來綁定一些在創建實例時必不可少的屬性。

python基礎面向對象(Python基礎之對象面向對象編程)4

我們創建了一個Asset類,它有名字和價格兩個屬性,創建具體實例時必須傳入這兩個屬性

2.封裝

若要打印出具體對像的某個屬性,可以創建一個打印函數

python基礎面向對象(Python基礎之對象面向對象編程)5

以下是示例

python基礎面向對象(Python基礎之對象面向對象編程)6

但是price屬于asset4這個對象的内部屬性,從軟件設計的角度考量,有些屬性可能帶有重要信息,像上例輕松從外部函數直接訪問内部屬性,并不好,比較理想的方法是把屬性和訪問屬性的方法放在同一個對象當中

python基礎面向對象(Python基礎之對象面向對象編程)7

在類中定義的方法可以用“實例.方法”的方式直接調用

python基礎面向對象(Python基礎之對象面向對象編程)8

把方法寫在對象内部仍然無法阻止對象屬性被輕易獲取,因為“對象.屬性名”依然可以打印出對象的屬性,為了對對象的屬性提供更加安全的保障,我們在創建對象實例時,在對象屬性名字前面加上兩個下劃線,以表示這個屬性為private(私有的)屬性,這樣通過“對象.屬性名”就無法訪問,隻能通過内部方法訪問

python基礎面向對象(Python基礎之對象面向對象編程)9

給Asset對象的價格屬性加密

python基礎面向對象(Python基礎之對象面向對象編程)10

通過“對象.屬性”訪問對象的price屬性時報錯,因為這個屬性加密了,而訪問name屬性時則不報錯

相較于直接從外部訪問對象的屬性,這種把訪問方法封裝在對象的内部的好處是,它可以賦予方法一些規範,例如如果想要修改對象的屬性,可以直接把修改方法寫在對象内部

3.繼承

繼承的思想是在已有的類的基礎上,盡可能的多重複去利用它。原有的類稱為父類,根據父類衍生出來的類稱為子類,一個父類可以衍生出無數個子類,換言之父類是由所有子類抽象而來的,子類一旦繼承父類便擁有了父類的屬性和方法,并可以視情況增添修改

下面我們創建新的類,他繼承自上面的Asset

python基礎面向對象(Python基礎之對象面向對象編程)11

子類Asset1增加了修改價格方法

4.多态

同一操作作用于不同的對象,可以有不同的解釋,産生不同的執行結果,這就是多态性

二、面向對象編程

面向對象編程是相對于面向過程編程而言的,我的理解是,Python面向對象編程是通過不同的方法作用于不同的對象,通過對對象的一系列操作實現目的編程思想

好了,就到這裡。今天的内容簡單向大家介紹了一下Python的對象概念,以及面向對象編程的編程思想,非常淺顯,但我相信有個基本的了解,對以後的學習肯定是有幫助的。

END

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
蘋果手機怎麼發郵件
蘋果手機怎麼發郵件
蘋果手機怎麼發郵件?以蘋果手機為例,首先在手機中找到電子郵件圖标,然後點按“郵件”,我來為大家講解一下關于蘋果手機怎麼發郵件?跟着小編一起來看一看吧!蘋果手機怎麼發郵件以蘋果手機為例,首先在手機中找到電子郵件圖标,然後點按“郵件”。以QQ郵...
2024-10-05
電信手機欠費怎麼查本機号碼
電信手機欠費怎麼查本機号碼
電信手機欠費怎麼查本機号碼?用相關證件的号碼如“身份證”前往電信營業廳就可以查詢以前用過手機号碼,下面我們就來聊聊關于電信手機欠費怎麼查本機号碼?接下來我們就一起去了解一下吧!電信手機欠費怎麼查本機号碼用相關證件的号碼如“身份證”前往電信營...
2024-10-05
華為正式發布鴻蒙3.0系統适配機型
華為正式發布鴻蒙3.0系統适配機型
就在前天,華為在夏季新品發布會上正式發布了鴻蒙系統的第三個大版本——華為鴻蒙OS3.0。相對于鴻蒙2.0版本,鴻蒙3.0将給我們帶來更好的操作體驗,比如:超級終端、鴻蒙智聯、萬能卡片、智能文件夾、桌面布局、系統流暢性能、隐私安全等多個方面都...
2024-10-05
電工維修中兆歐表的使用
電工維修中兆歐表的使用
搖表,又叫兆歐表,是用來測量絕緣電阻阻值大小的專業測量工具,因此又叫“絕緣電阻表”。在電工的工作中,其使用頻率僅次于萬用表。這麼說可能有的朋友還是不明白,那我就說的再通俗一點:比如漏電斷路器跳閘了,我們以前說過很多種方法确定漏電位置,無非就...
2024-10-05
tcl平闆有多大
tcl平闆有多大
會議是人、事、物的高度協同,我們在重視學習工作技能或優化内容創作的時候,也不能忽略那些會議設備,否則會引起很多繁瑣和不便。舉些栗子,模糊的投影、冗雜的操作、不穩的接線頭……都會影響到會議效率,令人分心。而作為可将企業會議從“傳統”升級到“智...
2024-10-05
Copyright 2023-2024 - www.tftnews.com All Rights Reserved