Python__面向对象思想
目錄
一、Python中的面向?qū)ο笏枷?/p>
二、類(lèi)和對(duì)象
Python 是一種面向?qū)ο蟮木幊陶Z(yǔ)言,不過(guò),Python 與 C++ 一樣,還支持面向過(guò)程的程序設(shè)計(jì)。在 Python 中完全可以使用函數(shù)、模塊等方式來(lái)完成工作。但是,當(dāng)使用 Python 編寫(xiě)一個(gè)較為龐大的項(xiàng)目時(shí),則應(yīng)該考慮使用面向?qū)ο蟮姆椒?#xff0c;以便更好地對(duì)項(xiàng)目進(jìn)行管理。面向?qū)ο蟪绦蛟O(shè)計(jì)(Object Oriented Programming)簡(jiǎn)稱(chēng) OOP,是與面向過(guò)程的程序設(shè)計(jì)不同的另一種編程架構(gòu)。
一、Python中的面向?qū)ο笏枷?/h3>
面向?qū)ο蟪绦蛟O(shè)計(jì)是一種編程方法,強(qiáng)調(diào)對(duì)象的 "抽象"、"封裝"、"繼承" 和" 多態(tài)"。面向?qū)ο蟪绦蛟O(shè)計(jì)方法的基本思想是將任何事物都當(dāng)做對(duì)象,是其所屬于對(duì)象類(lèi)的一個(gè)實(shí)例。對(duì)于復(fù)雜的對(duì)象則將其劃分為簡(jiǎn)單的對(duì)象,由這些簡(jiǎn)單的對(duì)象以某種方式組合而形成復(fù)雜的對(duì)象。每一個(gè)對(duì)象都有其相對(duì)應(yīng)的對(duì)象類(lèi),屬于同一對(duì)象類(lèi)的對(duì)象具有相同的屬性及方法。
對(duì)象以對(duì)象類(lèi)的形式將其內(nèi)部的數(shù)據(jù)或者方法進(jìn)行封裝。對(duì)象與對(duì)象之間只是相互傳遞數(shù)據(jù),而不能訪(fǎng)問(wèn)其他對(duì)象的內(nèi)部,對(duì)象的內(nèi)部對(duì)其他對(duì)象而言是不可見(jiàn)的。不同的對(duì)象類(lèi)之間可以通過(guò)繼承的形式來(lái)?yè)碛衅渌麑?duì)象的屬性和方法,從而形成父子關(guān)系。
面向?qū)ο蟪绦蛟O(shè)計(jì)方法的基本過(guò)程如下:
- Step1:確定對(duì)象及其屬性和方法。
- Step2:分析對(duì)象之間的聯(lián)系,確定其通信機(jī)制。
- Step3:將具有共同特征的對(duì)象抽象為對(duì)象類(lèi)。
- Step4:設(shè)計(jì)、實(shí)現(xiàn)類(lèi),并確定類(lèi)相互間的繼承關(guān)系。
- Step5:創(chuàng)建對(duì)象示例,實(shí)現(xiàn)對(duì)象間的相互聯(lián)系。
例如,可以將人作為一個(gè)對(duì)象類(lèi)。每一個(gè)具體的人,如張三,則是一個(gè)對(duì)象實(shí)例。每個(gè)人都具有姓名、性別、年齡和身高等特征,可以將這些特征抽象為對(duì)象類(lèi)的屬性。
Python 完全采用了面向?qū)ο蟪绦蛟O(shè)計(jì)的思想。在 Python 中,可以使用類(lèi)建立一個(gè)對(duì)象模型,以及對(duì)象所擁有的屬性和方法。該模型能夠較好地反映事物的本質(zhì),以及其相互之間的關(guān)系,其本質(zhì)是更接近于人類(lèi)認(rèn)知事物所采用的計(jì)算模型。
Python 是真正面向?qū)ο蟮哪_本語(yǔ)言,雖然其與 C++ 的類(lèi)機(jī)制有所區(qū)別,但 Python 能夠保證對(duì)類(lèi)的最重要功能的支持,如類(lèi)的繼承、基類(lèi)的重載等。
在 Python 中,對(duì)象概念比較廣泛,對(duì)象不一定就是類(lèi)的實(shí)例。Python 的內(nèi)置數(shù)據(jù)類(lèi)型如字符串、列表、字典等,他們都不是類(lèi),但卻具有一些和類(lèi)相似的語(yǔ)法。例如,使用 "." 操作符來(lái)使用內(nèi)置類(lèi)型的某些方法。
二、類(lèi)和對(duì)象
類(lèi)是面向?qū)ο蟪绦蛟O(shè)計(jì)的基礎(chǔ)。類(lèi)具有抽象性、封裝性、繼承性和多態(tài)性。
- 類(lèi)的抽象性:類(lèi)是對(duì)具有共同方法和屬性的一類(lèi)對(duì)象的描述。
- 類(lèi)的封裝性:類(lèi)將屬性和方法封裝,外部是不可見(jiàn),只有通過(guò)類(lèi)提供的接口才能與屬于類(lèi)的實(shí)例對(duì)象進(jìn)行信息交換。
- 類(lèi)的繼承性:類(lèi)可以由已有的類(lèi)派生。派生出來(lái)的類(lèi)擁有父類(lèi)的方法和屬性。
- 類(lèi)的多態(tài)性:類(lèi)可以根據(jù)不同的參數(shù)類(lèi)型調(diào)用不同的方法。同一個(gè)方法可以處理不同類(lèi)型的參數(shù)。實(shí)際上,Python 的內(nèi)部已經(jīng)很好地實(shí)現(xiàn)了多態(tài),在 Python 中,使用類(lèi)不需要考慮太多不同類(lèi)型之間的處理問(wèn)題。
每個(gè)類(lèi)都有自己的屬性和方法。類(lèi)的屬性,實(shí)際上就是類(lèi)內(nèi)部的變量;而類(lèi)的方法,則是在類(lèi)內(nèi)部定義的函數(shù)。
對(duì)象是具體的事物,是類(lèi)的實(shí)例化結(jié)果。每個(gè)對(duì)象的屬性值可能不同,但所有由同一類(lèi)實(shí)例化得來(lái)的對(duì)象都擁有共同的屬性和方法。在程序中,由類(lèi)實(shí)例化生成對(duì)象,然后使用對(duì)象的方法進(jìn)行操作,從而來(lái)完成任務(wù)。一個(gè)類(lèi)可以實(shí)例化生成多個(gè)對(duì)象。類(lèi)與對(duì)象的關(guān)系如下圖所示。
總結(jié)
以上是生活随笔為你收集整理的Python__面向对象思想的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python__数据结构与算法——查找与
- 下一篇: python中的'\b'、'\r'