python中什么是面向?qū)ο?/h1>
更新時(shí)間:2020年06月11日 11:28:03 投稿:laozhang
在本篇文章里小編給大家分享了關(guān)于python面向?qū)ο蟮南嚓P(guān)基礎(chǔ)知識點(diǎn),有興趣的朋友們跟著學(xué)習(xí)下。
用面向?qū)ο蟮乃季S解決問題的重點(diǎn)
當(dāng)遇到一個(gè)需求的時(shí)候不用自己去實(shí)現(xiàn),如果自己一步步實(shí)現(xiàn)那就是面向過程;應(yīng)該找一個(gè)專門做這個(gè)事的人來做。
面向?qū)ο?object-oriented ;簡稱: OO) 至今還沒有統(tǒng)一的概念 我們可以把它定義為: 按人們 認(rèn)識客觀世界的系統(tǒng)思維方式,采用基于對象(實(shí)體) 的概念建立模型,模擬客觀世界分析、設(shè) 計(jì)、實(shí)現(xiàn)軟件的辦法。
面向?qū)ο缶幊?Object Oriented Programming-OOP) 是一種解決軟件復(fù)用的設(shè)計(jì)和編程方法。 這種方法把軟件系統(tǒng)中相近相似的操作邏輯和操作 應(yīng)用數(shù)據(jù)、狀態(tài),以類的型式描述出來,以對象實(shí)例的形式在軟件系統(tǒng)中復(fù)用,以達(dá)到提高軟件開發(fā)效率的作用。
類和對象的概念
類
類是對一群具有相同特征或者行為的事物的一個(gè)統(tǒng)稱,是抽象的,不能直接使用;
特征被稱為屬性;
行為被稱為方法。
對象
對象是由類創(chuàng)建出來的一個(gè)具體存在,可以直接使用;
由哪一個(gè)類創(chuàng)建出來的對象,該對象就具有在那一個(gè)類中定義的屬性和方法;
類和對象的關(guān)系
類就是創(chuàng)建對象的模板,應(yīng)該先有類,在有對象;
一個(gè)類可以創(chuàng)建多個(gè)對象,不同對象之間屬性可能各不相同;
類中定義了什么方法,對象中就有什么屬性和方法,不可能少,但可能多,因?yàn)閷ο罂梢宰约涸陬愅庠黾訉傩?/p>
定義簡單的類
面向?qū)ο笫歉蟮姆庋b,在一個(gè)類中封裝多個(gè)方法,這樣通過這個(gè)類創(chuàng)建出來的對象,就可以直接調(diào)用這些方法了。
定義只包含方法的類
在python中藥定義一個(gè)只包含方法的類,語法格式如下:
class 類名:
def 方法1(self, 列表參數(shù)):
pass
def 方法2(self, 列表參數(shù)):
pass
方法的定義格式和之前學(xué)習(xí)的函數(shù)幾乎一樣;
區(qū)別在于第一個(gè)參數(shù)必須是self;
注意,類名的命名規(guī)則要符合大駝峰命名法;
創(chuàng)建對象
當(dāng)一個(gè)類定義完成后,要使用這個(gè)類來創(chuàng)建對象,語法格式如下:
對象變量 = 類名()
第一個(gè)面向?qū)ο蟪绦?/p>
class Cat:
"""定義一個(gè)貓類"""
def eat(self):
print("小貓愛吃魚")
def drink(self):
print("小貓要喝水")
tom = Cat()
tom.eat()
tom.drink()
知識點(diǎn)擴(kuò)展:
面向?qū)ο笤O(shè)計(jì)與面向?qū)ο缶幊痰年P(guān)系
面向?qū)ο笤O(shè)計(jì)(OOD)不會特別要求面向?qū)ο缶幊陶Z言。事實(shí)上,OOD 可以由純結(jié)構(gòu)化語言來實(shí)現(xiàn),比如 C,但如果想要構(gòu)造具備對象性質(zhì)和特點(diǎn)的數(shù)據(jù)類型,就需要在程序上作更多的努力。當(dāng)一門語言內(nèi)建 OO 特性,OO 編程開發(fā)就會更加方便高效。另一方面,一門面向?qū)ο蟮恼Z言不一定會強(qiáng)制你寫 OO 方面的程序。例如 C++可以被認(rèn)為“更好的C”;而 Java,則要求萬物皆類,此外還規(guī)定,一個(gè)源文件對應(yīng)一個(gè)類定義。然而,在 Python 中,類和 OOP 都不是日常編程所必需的。盡管它從一開始設(shè)計(jì)就是面向?qū)ο蟮模⑶医Y(jié)構(gòu)上支持 OOP,但Python 沒有限定或要求你在你的應(yīng)用中寫 OO 的代碼。OOP 是一門強(qiáng)大的工具,不管你是準(zhǔn)備進(jìn)入,學(xué)習(xí),過渡,或是轉(zhuǎn)向 OOP,都可以任意支配??紤]用 OOD 來工作的一個(gè)最重要的原因,在于它直接提供建模和解決現(xiàn)實(shí)世界問題和情形的途徑。
到此這篇關(guān)于python中什么是面向?qū)ο蟮奈恼戮徒榻B到這了,更多相關(guān)python中什么是面向?qū)ο髢?nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
-
PyTorch CNN實(shí)戰(zhàn)之MNIST手寫數(shù)字識別示例
本篇文章主要介紹了PyTorch CNN實(shí)戰(zhàn)之MNIST手寫數(shù)字識別示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧 2018-05-05
-
python自動(dòng)從arxiv下載paper的示例代碼
這篇文章主要介紹了python自動(dòng)從arxiv下載paper的示例代碼,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下 2020-12-12
-
python3使用PyMysql連接mysql數(shù)據(jù)庫實(shí)例
本篇文章主要介紹了python3使用PyMysql連接mysql數(shù)據(jù)庫實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
2017-02-02
-
Python學(xué)習(xí)之魔法函數(shù)(filter,map,reduce)詳解
這篇文章我們將來學(xué)習(xí)一下,Python中的三個(gè)高級函數(shù):filter()、map()、reduce(),這三個(gè)函數(shù)也被稱為魔法函數(shù),感興趣的小伙伴可以了解一下 2022-04-04
-
安裝不同版本的tensorflow與models方法實(shí)現(xiàn)
這篇文章主要介紹了安裝不同版本的tensorflow與models方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧 2021-02-02
-
Python?async+request與async+aiohttp實(shí)現(xiàn)異步網(wǎng)絡(luò)請求探索
這篇文章主要介紹了Python?async+request與async+aiohttp實(shí)現(xiàn)異步網(wǎng)絡(luò)請求探索,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧 2022-10-10
最新評論
用面向?qū)ο蟮乃季S解決問題的重點(diǎn)
當(dāng)遇到一個(gè)需求的時(shí)候不用自己去實(shí)現(xiàn),如果自己一步步實(shí)現(xiàn)那就是面向過程;應(yīng)該找一個(gè)專門做這個(gè)事的人來做。
面向?qū)ο?object-oriented ;簡稱: OO) 至今還沒有統(tǒng)一的概念 我們可以把它定義為: 按人們 認(rèn)識客觀世界的系統(tǒng)思維方式,采用基于對象(實(shí)體) 的概念建立模型,模擬客觀世界分析、設(shè) 計(jì)、實(shí)現(xiàn)軟件的辦法。
面向?qū)ο缶幊?Object Oriented Programming-OOP) 是一種解決軟件復(fù)用的設(shè)計(jì)和編程方法。 這種方法把軟件系統(tǒng)中相近相似的操作邏輯和操作 應(yīng)用數(shù)據(jù)、狀態(tài),以類的型式描述出來,以對象實(shí)例的形式在軟件系統(tǒng)中復(fù)用,以達(dá)到提高軟件開發(fā)效率的作用。
類和對象的概念
類
類是對一群具有相同特征或者行為的事物的一個(gè)統(tǒng)稱,是抽象的,不能直接使用;
特征被稱為屬性;
行為被稱為方法。
對象
對象是由類創(chuàng)建出來的一個(gè)具體存在,可以直接使用;
由哪一個(gè)類創(chuàng)建出來的對象,該對象就具有在那一個(gè)類中定義的屬性和方法;
類和對象的關(guān)系
類就是創(chuàng)建對象的模板,應(yīng)該先有類,在有對象;
一個(gè)類可以創(chuàng)建多個(gè)對象,不同對象之間屬性可能各不相同;
類中定義了什么方法,對象中就有什么屬性和方法,不可能少,但可能多,因?yàn)閷ο罂梢宰约涸陬愅庠黾訉傩?/p>
定義簡單的類
面向?qū)ο笫歉蟮姆庋b,在一個(gè)類中封裝多個(gè)方法,這樣通過這個(gè)類創(chuàng)建出來的對象,就可以直接調(diào)用這些方法了。
定義只包含方法的類
在python中藥定義一個(gè)只包含方法的類,語法格式如下:
class 類名: def 方法1(self, 列表參數(shù)): pass def 方法2(self, 列表參數(shù)): pass
方法的定義格式和之前學(xué)習(xí)的函數(shù)幾乎一樣;
區(qū)別在于第一個(gè)參數(shù)必須是self;
注意,類名的命名規(guī)則要符合大駝峰命名法;
創(chuàng)建對象
當(dāng)一個(gè)類定義完成后,要使用這個(gè)類來創(chuàng)建對象,語法格式如下:
對象變量 = 類名()
第一個(gè)面向?qū)ο蟪绦?/p>
class Cat: """定義一個(gè)貓類""" def eat(self): print("小貓愛吃魚") def drink(self): print("小貓要喝水") tom = Cat() tom.eat() tom.drink()
知識點(diǎn)擴(kuò)展:
面向?qū)ο笤O(shè)計(jì)與面向?qū)ο缶幊痰年P(guān)系
面向?qū)ο笤O(shè)計(jì)(OOD)不會特別要求面向?qū)ο缶幊陶Z言。事實(shí)上,OOD 可以由純結(jié)構(gòu)化語言來實(shí)現(xiàn),比如 C,但如果想要構(gòu)造具備對象性質(zhì)和特點(diǎn)的數(shù)據(jù)類型,就需要在程序上作更多的努力。當(dāng)一門語言內(nèi)建 OO 特性,OO 編程開發(fā)就會更加方便高效。另一方面,一門面向?qū)ο蟮恼Z言不一定會強(qiáng)制你寫 OO 方面的程序。例如 C++可以被認(rèn)為“更好的C”;而 Java,則要求萬物皆類,此外還規(guī)定,一個(gè)源文件對應(yīng)一個(gè)類定義。然而,在 Python 中,類和 OOP 都不是日常編程所必需的。盡管它從一開始設(shè)計(jì)就是面向?qū)ο蟮模⑶医Y(jié)構(gòu)上支持 OOP,但Python 沒有限定或要求你在你的應(yīng)用中寫 OO 的代碼。OOP 是一門強(qiáng)大的工具,不管你是準(zhǔn)備進(jìn)入,學(xué)習(xí),過渡,或是轉(zhuǎn)向 OOP,都可以任意支配??紤]用 OOD 來工作的一個(gè)最重要的原因,在于它直接提供建模和解決現(xiàn)實(shí)世界問題和情形的途徑。
到此這篇關(guān)于python中什么是面向?qū)ο蟮奈恼戮徒榻B到這了,更多相關(guān)python中什么是面向?qū)ο髢?nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PyTorch CNN實(shí)戰(zhàn)之MNIST手寫數(shù)字識別示例
本篇文章主要介紹了PyTorch CNN實(shí)戰(zhàn)之MNIST手寫數(shù)字識別示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05python自動(dòng)從arxiv下載paper的示例代碼
這篇文章主要介紹了python自動(dòng)從arxiv下載paper的示例代碼,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-12-12python3使用PyMysql連接mysql數(shù)據(jù)庫實(shí)例
本篇文章主要介紹了python3使用PyMysql連接mysql數(shù)據(jù)庫實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02Python學(xué)習(xí)之魔法函數(shù)(filter,map,reduce)詳解
這篇文章我們將來學(xué)習(xí)一下,Python中的三個(gè)高級函數(shù):filter()、map()、reduce(),這三個(gè)函數(shù)也被稱為魔法函數(shù),感興趣的小伙伴可以了解一下2022-04-04安裝不同版本的tensorflow與models方法實(shí)現(xiàn)
這篇文章主要介紹了安裝不同版本的tensorflow與models方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02Python?async+request與async+aiohttp實(shí)現(xiàn)異步網(wǎng)絡(luò)請求探索
這篇文章主要介紹了Python?async+request與async+aiohttp實(shí)現(xiàn)異步網(wǎng)絡(luò)請求探索,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-10-10