欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Python:面向對象編程

 更新時間:2019年04月10日 14:09:09   作者:Tendency1060  
這篇文章主要介紹了Python面向對象編程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

面向過程的程序設計把計算機程序視為一系列的命令集合,即一組函數(shù)的順序執(zhí)行。為了簡化程序設計,面向過程把函數(shù)繼續(xù)切分為子函數(shù),即把大塊函數(shù)通過切割成小塊函數(shù)來降低系統(tǒng)的復雜度

python和java都是面向對象的語言。面向對象編程的特點數(shù)據(jù)封裝、繼承和多態(tài)

1.類和實例

面向對象最重要的概念就是類(Class)和實例(Instance),必須牢記類是抽象的模板,比如Student類,而實例是根據(jù)類創(chuàng)建出來的一個個具體的“對象”,每個對象都擁有相同的方法,但各自的數(shù)據(jù)可能不同。
在python中,定義類同樣也是使用class關鍵字,class后面緊跟著的是類名,需要開頭大寫,之后的括號里表示的是繼承的哪個類,即它的父類。

class Student(object):
  pass

我們可以自由地給這個變量綁定屬性

>>>nick.name = 'Liu Ling Hao'
>>>nick.name
'Liu Ling Hao'

而之后定義的不同的函數(shù)則是方法??偨Y來說對象=屬性+方法
由于類可以起到模板的作用,因此,可以在創(chuàng)建實例的時候,把一些我們認為必須綁定的屬性強制填寫進去。此時就需要用到比較特殊的__init__方法。(int 前后各有兩個下劃線)
__init__方法的第一個參數(shù)永遠是self,表示創(chuàng)建的實例本身。

class Student(object):
  def __init__(self, name, score):
    self.name = name
    self.score = scor
>>> bart = Student('Bart Simpson', 59)
>>> bart.name
'Bart Simpson'
>>> bart.score
59

當有了__init__方法之后,在創(chuàng)建實例的時候,就不能傳入空的參數(shù)了,必須傳入與__init__方法匹配的參數(shù)

2.封裝,繼承和多態(tài)

面向對象編程的一個重要特點就是數(shù)據(jù)封裝。
就像上面例子中的name和score,我們可以直接在類的內部定義的函數(shù)去訪問,,比如可以添加一個數(shù)據(jù)或者對于一個列表進行排序,我們可以實現(xiàn),但是我們并不知道它的內部是通過如何調節(jié)而實現(xiàn)的。

當我們定義一個class的時候,可以從某個現(xiàn)有的class繼承,新的class稱為子類(Subclass),而被繼承的class稱為基類、父類或超類(Base class、Super class)。

繼承的好處就是獲得了父類的全部功能,對于子類而言,可以在父類的基礎上接著寫,更加方便

class Person(object):
  def idea(self):
    print('study is happy')
class Liu(Person):
  pass
liu =Liu()
liu.idea

study is happy

當然子類如果有和父類同樣的方法時會自動覆蓋掉父類的

多態(tài):不同對象對同一方法響應不同的行動

>>>class Nick1:
  def name(self):
     	 print("我是1")
>>>class Nick2:
  def name(self):
  		 print("我是2") 
>>>a = Nick1()
>>>b = Nick2()
>>>a.name
我是1
>>>b.name
我是2

使用的函數(shù)名雖然一樣但是實現(xiàn)并不一樣。

def run(animal):
  animal.run()
  animal.run()
  >>> run(Animal())
Animal is running...
Animal is running...
>>> run_twice(Dog())
Dog is running...
Dog is running... 

多態(tài)的好處就是,當我們需要傳入Dog或者其它動物時,我們只需要接收Animal類型就可以了,因為Dog都是Animal類型,然后,按照Animal類型進行操作即可。由于Animal類型有run()方法,因此,傳入的任意類型,只要是Animal類或者子類,就會自動調用實際類型的run()方法,這就是多態(tài)

以上所述是小編給大家介紹的Python面向對象編程詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • python無法識別vim中文代碼的解決方案

    python無法識別vim中文代碼的解決方案

    這篇文章主要介紹了python無法識別vim中文代碼的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • python中的deque雙向隊列詳解

    python中的deque雙向隊列詳解

    這篇文章主要介紹了python中的deque雙向隊列詳解,相比 list 實現(xiàn)的隊列,deque 擁有更低的時間和空間復雜度,list 實現(xiàn)在出隊(pop)和插入(insert)時的空間復雜度大約為O(n),需要的朋友可以參考下
    2023-09-09
  • python庫geopandas讀取寫入空間數(shù)據(jù)及繪圖實例探索

    python庫geopandas讀取寫入空間數(shù)據(jù)及繪圖實例探索

    這篇文章主要為大家介紹了python庫geopandas讀取寫入空間數(shù)據(jù)及繪圖實例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪<BR>
    2024-02-02
  • Python 字典與字符串的互轉實例

    Python 字典與字符串的互轉實例

    下面小編就為大家?guī)硪黄狿ython 字典與字符串的互轉實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • python如何進行基準測試

    python如何進行基準測試

    這篇文章主要介紹了python如何進行基準測試,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-04-04
  • 詳解Python中for循環(huán)的定義迭代方法

    詳解Python中for循環(huán)的定義迭代方法

    for循環(huán)用于迭代序列(即列表、元組、字典、集合或字符串)。for 語句的寫法如從對象開始按順序給變量賦值,元素個數(shù)重復這個過程。對象可以是列表(數(shù)組)、元組、字符串等。本文將詳細講解Python中for定義迭代方法詳解,需要的可以了解一下
    2022-04-04
  • 簡單的連接MySQL與Python的Bottle框架的方法

    簡單的連接MySQL與Python的Bottle框架的方法

    這篇文章主要介紹了簡單的連接MySQL與Python的Bottle框架的方法,主要基于mysql-connector插件,需要的朋友可以參考下
    2015-04-04
  • Python?OpenCV中常用圖片處理函數(shù)小結

    Python?OpenCV中常用圖片處理函數(shù)小結

    在計算機視覺和圖像處理領域,OpenCV(Open?Source?Computer?Vision?Library)是一個非常強大和流行的開源庫,本文將介紹一些常用的OpenCV函數(shù),希望對大家有所幫助
    2024-03-03
  • Python超詳細分步解析隨機漫步

    Python超詳細分步解析隨機漫步

    隨機游走(random walk)也稱隨機漫步,隨機行走等是指基于過去的表現(xiàn),無法預測將來的發(fā)展步驟和方向。核心是指任何無規(guī)則行走者所帶的守恒量都各自對應著一個擴散運輸定律,接近布朗運動,現(xiàn)階段主要應用于互聯(lián)網(wǎng)鏈接分析及金融股票市場中
    2022-03-03
  • Python字典簡介以及用法詳解

    Python字典簡介以及用法詳解

    字典(dictionary)是除列表意外python之中最靈活的內置數(shù)據(jù)結構類型。列表是有序的對象結合,字典是無序的對象集合。兩者之間的區(qū)別在于:字典當中的元素是通過鍵來存取的,而不是通過偏移存取。
    2016-11-11

最新評論