日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

【Python】Python语言学习:面向对象编程,类和对象,封装、继承和多态

發(fā)布時(shí)間:2025/3/12 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】Python语言学习:面向对象编程,类和对象,封装、继承和多态 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這一周Python語(yǔ)言學(xué)習(xí),記錄如下。

01

面向?qū)ο缶嶰OP

1.1 為什么學(xué)習(xí)和應(yīng)用OOP?

  • 1 OOP適合更加復(fù)雜的需求分析和項(xiàng)目開(kāi)發(fā)。

  • 2 OOP具有更強(qiáng)大的封裝能力。

  • 3 OOP相比于面向過(guò)程編程(OPP),是另一種編程思維,從誰(shuí)來(lái)做思考需求分析和代碼設(shè)計(jì)與開(kāi)發(fā)

  • 4 OOP可以提升我數(shù)據(jù)科學(xué)工作的效率。

1.2 什么是OOP?

OOP全稱是(Object Oriented Programming),面向?qū)ο缶幊?#xff0c;一種編程思維和方式。
面對(duì)需求分析時(shí),OPP會(huì)思考怎么做這個(gè)需求,而OOP會(huì)思考誰(shuí)來(lái)做這個(gè)需求,并且進(jìn)一步思考這個(gè)誰(shuí)需要具備什么特征和行為,即這個(gè)誰(shuí)的屬性和方法。通過(guò)OOP,可以把這個(gè)誰(shuí)的屬性和方法封裝在一起,做成一個(gè)類。類是一種抽象,類似建房子的圖紙;對(duì)象是類的具體化或者實(shí)例化,類似按著圖紙建成一棟棟房子。這個(gè)房子有什么特征和能夠做什么,就取決于房子的圖紙(類)的先前的設(shè)計(jì)。你會(huì)發(fā)現(xiàn),面向?qū)ο缶幊?#xff0c;更接近我們的生活,更能夠靈活性地表達(dá)我們的生活。

1.3 怎么學(xué)習(xí)OOP?

通過(guò)OOP的概念,我們發(fā)現(xiàn),學(xué)習(xí)OOP時(shí),我們需要學(xué)習(xí)這些內(nèi)容:

  • 1 OOP是一種編程思維和方式。

  • 2 OOP的需求分析是從誰(shuí)來(lái)做開(kāi)始的,并且要想清楚這個(gè)誰(shuí)要有什么職能。

  • 3 OOP的兩個(gè)核心概念:類和對(duì)象

  • 4 OOP的三個(gè)重要特性:封裝、繼承和多態(tài)

  • 5 OOP的屬性和方法的類型,例如實(shí)例屬性和方法、類屬性和方法、靜態(tài)方法。

  • 6 學(xué)習(xí)和使用OOP來(lái)設(shè)計(jì)和實(shí)現(xiàn)負(fù)責(zé)的項(xiàng)目和系統(tǒng)。

02

類和對(duì)象

2.1 概念描述

類和對(duì)象是OOP的兩個(gè)核心概念。

類是抽象,不能直接使用,它是對(duì)一群具有相同特征或者行為的事物的一個(gè)統(tǒng)稱。

  • 1 特征稱為屬性

  • 2 行為稱為方法

對(duì)象是具體的,可以直接使用,它是類的具體存在,具有類所設(shè)計(jì)的屬性和方法。

舉例說(shuō)明:
類相當(dāng)于建房圖紙,對(duì)象相當(dāng)于按著建房圖紙建造的一棟棟樓房。

在程序開(kāi)發(fā)中,應(yīng)該先有類,再有對(duì)象;應(yīng)該先設(shè)計(jì)要使用的類,再設(shè)計(jì)其它類;設(shè)計(jì)類的時(shí)候遵循奧卡姆剃刀原則,即類設(shè)計(jì)的時(shí)候,不要增加沒(méi)有的或者不必要的屬性和方法

2.2 類設(shè)計(jì)和生成

使用關(guān)鍵詞class來(lái)設(shè)計(jì)類。
簡(jiǎn)單示例。
需求分析,需求如下
18歲的小明喜歡跑步和讀書(shū)。
20歲的小紅也喜歡跑步和讀書(shū)。
根據(jù)需求,我們創(chuàng)建一個(gè)Person類,具有姓名和年齡屬性,跑步和讀書(shū)方法。
參考代碼如下:

#?設(shè)計(jì)Person類 class?Person:#?創(chuàng)建實(shí)例屬性def?__init__(self,?name,?age):self.name?=?nameself.age?=?age#?創(chuàng)建實(shí)例方法def?run(self):print("%d歲的%s喜歡跑步"?%?(self.age,?self.name))def?read(self):print("%d歲的%s喜歡跑步"?%?(self.age,?self.name))#?生成小明對(duì)象 xiao_ming?=?Person("小明",?18) xiao_ming.run() xiao_ming.read()#?生成小紅對(duì)象 xiao_hong?=?Person("小紅",?20) xiao_hong.run() xiao_hong.read()

結(jié)果如下。

03

封裝

封裝是面向?qū)ο缶幊痰囊淮筇匦浴?br />OOP的第一步,把屬性和方法封裝到一個(gè)抽象類中。
外界使用類創(chuàng)建對(duì)象,然后用對(duì)象調(diào)用方法。
對(duì)象方法的細(xì)節(jié)被封裝在類的內(nèi)部。
前面的Person類就采用了封裝技術(shù)。

04

繼承

OOP有三大特性,分別是封裝、繼承和多態(tài)。

  • 1 封裝,根據(jù)這個(gè)誰(shuí)的職能將屬性和方法封裝到一個(gè)抽象的類中

  • 2 繼承,實(shí)現(xiàn)代碼重用,相同的代碼不需要重復(fù)編寫(xiě)。編寫(xiě)程序時(shí),請(qǐng)遵循不寫(xiě)重復(fù)代碼塊的原則。

  • 3 多態(tài),不同的對(duì)象調(diào)用相同的方法,產(chǎn)生不同的執(zhí)行結(jié)果,增加代碼的靈活度,讓代碼可做更豐富的功能。

繼承的知識(shí)點(diǎn),羅列如下:

  • 子類繼承自父類,可以直接享受父類中已經(jīng)封裝好的方法,不需要再次開(kāi)發(fā)。

  • 子類根據(jù)自己職能,封裝子類特有的屬性和方法。

  • 繼承具有傳遞性。

  • 當(dāng)父類的方法實(shí)現(xiàn)不能滿足子類需求時(shí),可以對(duì)父類方法進(jìn)行重寫(xiě)(一種是覆蓋父類的方法,另一種是對(duì)父類方法功能進(jìn)行擴(kuò)展,需要的位置使用super().父類方法)

  • 子類對(duì)象不能直接訪問(wèn)父類的私有屬性和方法(一種隱私保護(hù)技術(shù)),可以通過(guò)父類的公有方法間接訪問(wèn)。

  • 子類可以多個(gè)繼承類,比方說(shuō),孩子類繼承父親和母親類的特性和方法。多重繼承的時(shí)候,避免各個(gè)類里面具有相同的方法。

  • 如果沒(méi)有父類,建議統(tǒng)一繼承自object。

05

多態(tài)

多態(tài)是指不同的子類對(duì)象調(diào)用相同的父類方法,會(huì)產(chǎn)生不同的執(zhí)行結(jié)果。
多態(tài)的知識(shí)點(diǎn):

  • 1 多態(tài)的好處,增加代碼的靈活度

  • 2 多態(tài)的構(gòu)建,以繼承和重寫(xiě)父類方法為前提。

繼承和多態(tài)的一個(gè)簡(jiǎn)單實(shí)例。
需求分析:
HR需要招聘程序員和設(shè)計(jì)師,基于OOP采用繼承和多態(tài)編寫(xiě)代碼。
參考代碼:

class?Person(object):def?__init__(self,?name):self.name?=?namedef?work(self):print("%s喜歡工作"?%?self.name)class?Programmer(Person):def?work(self):print("%s編寫(xiě)代碼"?%?self.name)class?Designer(Person):def?work(self):print("%s設(shè)計(jì)UI"?%?self.name)class?HumanResources(object):def?__init__(self,?name):self.name?=?namedef?hr_with_person(self,?person):print("%s招聘%s"?%?(self.name,?person.name))#?人才的工作職責(zé)person.work()#?創(chuàng)建一個(gè)程序員對(duì)象 xiao_ming?=?Programmer("小明") #?創(chuàng)建一個(gè)設(shè)計(jì)是對(duì)象 xiao_hong?=?Designer("小紅")#?創(chuàng)建一個(gè)HR對(duì)象 xiao_fang?=?HumanResources("小芳") #?招聘程序員 xiao_fang.hr_with_person(xiao_ming) #?招聘設(shè)計(jì)師 xiao_fang.hr_with_person(xiao_hong)

結(jié)果如下:

06

總結(jié)

OOP是一種編程方式和思維框架,掌握和熟悉OOP,可以響應(yīng)更加復(fù)雜的需求和開(kāi)發(fā)更加復(fù)雜的系統(tǒng)。
OOP的兩大核心概念是類和對(duì)象,三大特性是封裝、集成和多態(tài)。

往期精彩回顧適合初學(xué)者入門(mén)人工智能的路線及資料下載(圖文+視頻)機(jī)器學(xué)習(xí)入門(mén)系列下載中國(guó)大學(xué)慕課《機(jī)器學(xué)習(xí)》(黃海廣主講)機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印《統(tǒng)計(jì)學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載機(jī)器學(xué)習(xí)交流qq群955171419,加入微信群請(qǐng)掃碼:

總結(jié)

以上是生活随笔為你收集整理的【Python】Python语言学习:面向对象编程,类和对象,封装、继承和多态的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。