從零開始學Python-Day37-面向對象編程

2020-12-13 木人張大大

OOP–Object Oriented Programming,面向對象編程,是一種程序設計思想。OOP把對象作為程序的基本單元,一個對象包含了數據和操作數據的函數。

面向過程的程序設計把電腦程式視為一系列的命令集合,即一組函數的順序執行。為了簡化程序設計,面向過程把函數繼續切分為子函數,即把大塊函數通過切割成小塊函數來降低系統的複雜度。

而面向對象的程序設計把電腦程式視為一組對象的集合,而每個對象都可以接收其他對象發過來的消息,並處理這些消息,電腦程式的執行就是一系列消息在各個對象之間傳遞。

在Python中,所有數據類型都可以視為對象,當然也可以自定義對象。自定義的對象數據類型就是面向對象中的類(Class)的概念。

我們以一個例子來說明面向過程和面向對象在程序流程上的不同之處。

假設我們要處理學生的成績表,為了表示一個學生的成績,面向過程的程序可以用一個dict表示:

std1 ={'name':'Michael','score':98}std2 ={'name':'Bob','score':81}

而處理學生成績可以通過函數實現,比如列印學生的成績:

def print_score(std):print('%s: %s'%(std['name'], std['score']))

如果採用面向對象的程序設計思想,我們首選思考的不是程序的執行流程,而是Student這種數據類型應該被視為一個對象,這個對象擁有name和score這兩個屬性(Property)。如果要列印一個學生的成績,首先必須創建出這個學生對應的對象,然後,給對象發一個print_score消息,讓對象自己把自己的數據列印出來。

classStudent(object):def __init__(self, name, score):self.name = nameself.score = scoredef print_score(self):print('%s: %s'%(self.name,self.score))

給對象發消息實際上就是調用對象對應的關聯函數,我們稱之為對象的方法(Method)。面向對象的程序寫出來就像這樣:

bart =Student('Bart Simpson',59)lisa =Student('Lisa Simpson',87)bart.print_score()lisa.print_score()

面向對象的設計思想是從自然界中來的,因為在自然界中,類(Class)和實例(Instance)的概念是很自然的。Class是一種抽象概念,比如我們定義的Class——Student,是指學生這個概念,而實例(Instance)則是一個個具體的Student,比如,Bart Simpson和Lisa Simpson是兩個具體的Student。

所以,面向對象的設計思想是抽象出Class,根據Class創建Instance。

面向對象的抽象程度又比函數要高,因為一個Class既包含數據,又包含操作數據的方法。

小結

數據封裝、繼承和多態是面向對象的三大特點。

相關焦點

  • Scratch、Python學哪個?兒童編程怎麼學?全面解析編程(上)
    如果您的小孩準備學習編程或者已經在學編程,建議您認真看完該系列文章,一定會對孩子學習編程有所幫助。本系列文共分為三部分,第一部分講編程是什麼?編程到底學什麼?第二部分講為什麼要學習編程?學習編程,孩子能收穫什麼?第三部分講到底要怎麼學編程?有哪些需要注意的問題。
  • 《小灰教你零基礎學python》-Python入門語言
    在講解Python介紹之前我需要從解釋一些基礎概念,為了照顧零編程基礎小白。一、什麼是程序?程式語言有很多,咱們就學簡單強大的python即可。Python是一種清晰而強大的面向對象程式語言,不過還沒入門的小白不要想多了哈,不是你的對象(女朋友?)
  • python高手養成記03:面向對象是什麼?網友:能3天掌握一門語言
    上一篇:python高手養成記02:python開發環境安裝題序:在很多書本裡面,一般的順序都是先學語法,然後再進階,學習面向對象的設計,像小編,剛開始學習C++的時候非常痛苦本章目錄:1、面向對象書本的話2、面向對象最簡單,快速的理解3、面向對象設計例子面向對象書本的話首先理解一下這幾個概念
  • Python編程學了有用嗎?
    Python編程學了有用嗎?眾所周知,目前家長對於孩子的教育越來越重視,培養孩子的編程思維也是大家關心的話題,孩子學習Python語言,需要使用精確到標點、分號等特殊字符,可以提高孩子的編程能力和邏輯思維能力。作為成成年人學python編程可以大大提高工作效率。
  • 代碼森林帶你實踐熱門編程書籍——《Python編程:從入門到實踐》
    第一本你必須要擁有的書籍一定是《Python編程:從入門到實踐》它是一本針對所有層次的Python讀者的編程學習書——《Python編程:從入門到實踐》本書內容本書旨在讓你成為優秀的程式設計師,具體地說,是優秀的Python程式設計師。
  • 2天學全Python面試基礎(1)
    通過列出30個python面試問題和答案,本文涵蓋在Python面試中經常問到的問題。如果您是該行業的新手,本基礎篇將極大地幫助您。我們衷心希望這篇文章在準備面試時會有所幫助。Python的需求量很大,必須與成千上萬擁有與python技能的申請人競爭,才能在就業市場中找到工作。
  • 電腦入門程式語言
    今天和大家介紹一下電腦入門編程學什麼語言更合適。首選python語言,python 是一門開源免費、通用型的腳本程式語言,現在社會上會python語言的人很吃香的。它上手簡單,功能強大,堅持「極簡主義」。
  • C風格的面向對象編程
    面向對象編程(OOP),最早是C++、java等面向對象語言的一個核心特點,之後發展成了一種編程思想。面向對象編程的主要特點是,把屬性(數據)與方法(函數)按照類型綁定,並按照類型之間的關係分層分模塊設計,通過基類指針和虛函數實現多態。
  • 開課吧:Python是什麼意思?為什麼有那麼多人學Python?
    PythonPython 是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。python非常容易上手,而且能幹很多事情,WEB開發,機器學習人工智慧,數據分析,量化投資,爬蟲等,基本可以應用到各行各業,而且大家都在做基於PYTHON的庫,使得PYTHON語言變成一門直接拿來就能用的語言,更像一種工具了,比如機器學習,可能理論很複雜,但是實際在PYTHON中僅僅幾行代碼就能實現,不用花太多時間用在碼代碼上面,python 現在是越來越火
  • Python300本電子書強力贈送,你敢來我就敢送!
    面向對象的思考過程.pdf30. 碼農 第8期.pdf31. 碼農 第7期.pdf32. 碼農 第6期.pdf33. 碼農 第5期.pdf34. 流暢的python.pdf35. 零基礎學python.pdf36. 量化投資以Python為工具.pdf37.
  • 面向對象編程
    面向對象編程(OOP)對於初學者來說可能是一個很難理解的概念。很多書籍都是從解釋OOP開始,討論三大術語:封裝、繼承和多態性,但是解釋的效果往往讓人失望。本文希望讓程式設計師、數據科學家和python愛好者們更容易理解這個概念。我們去掉所有的行話,通過一些例子來做解說。
  • Python培訓費用大概是多少?Python值得學嗎?
    Python是一種面向對象的程式語言,因為其簡單、易學、開源、腳本語言範兒的「人設」,是一種適合數據科學從業者學習的語言。隨著當下網際網路技術的高速發展,有越來越多的人選擇學習編程,而Python是對於沒有什麼編程基礎的初學者來說最適合學習的語言了。
  • 100天python計劃-Day9面向對象進階
    面向對象進階在前面的章節我們已經了解了面向對象的入門知識,知道了如何定義類,如何創建對象以及如何給對象發消息。為了能夠更好的使用面向對象編程思想進行程序開發,我們還需要對Python中的面向對象編程進行更為深入的了解。
  • python自學行嗎?python學好了能幹什麼-開課吧
    作為一門簡單易學的腳本語言,Python設計之初就是面向大眾,個人感覺比c容易些,零基礎小白也可以輕鬆入門。Python編程儘管國內還是C語言為主,但好多國家都將Python作為編程的第一步。人生苦短,我用python.
  • 月入過萬的程式語言PHP、Python、Java到底該選擇哪一個
    還是在編程江湖名稱響噹噹的Python?還是很早就玩起對象模式的java?同學們是不是已經一頭霧水了呢?下面我們來分析下各個語言的優劣勢說到php,大家第一反應是「世界上最好的語言」,沒毛病,它就是啊,php是開發最快速的語言,很多中小型創業公司首選的第一語言。別的語言還在搭架構,php開發的項目已經上線了,what?我們不玩虛的,我們只要快。
  • python和java哪個好
    python和java哪個好?書聲琅琅Python培訓老師介紹,這兩年來IT教育發展迅速,程式語言隨著發展也日益月異,比較火的Python語言發展迅速,與傳統使用的JAVA語言來說,火爆程度差不多,就有同學問了,python和java這兩個語言到底哪個好呢?
  • Python到底是個啥?為什麼這麼多人都要學?
    Hello,大家好,我是橘子呀~從今天開始跟大家一起學習Python,之後會不定期更新Python的相關文章。言歸正傳,今天我想跟大家分享一下python是什麼以及學習python對你有什麼幫助。一定要耐心看完喲~ 或許對現在的你有一定的啟發。
  • 你適合學編程嗎?這五大必備特質你擁有幾點
    昨天聽到學員們在談論,學編程的好處,當然也聽到了一些學員說當初選擇當程式設計師有點草率,那麼今天就給大家普及一下我個人認為程式設計師的五大必備特質:學員:雖然python只學了皮毛,但我迫不及待地用了起來,因為急待解決的問題真是太多太多了。
  • 面向對象編程會被拋棄嗎?這五大問題不容忽視
    儘管這個想法很巧妙,但直到 1981 年,面向對象編程才成為主流。在那之後,它就沒有停止過吸引新的和經驗豐富的軟體開發者。面向對象的程式設計師市場一如既往地忙碌。但是在最近幾年中,這種已有幾十年歷史的編程範式受到越來越多的批評。難道是在面向對象編程大行其道 40 年之後,技術已經超越了這種範式?
  • 資料|像計算機科學家一樣思考Python(中文版)
    from=leiphonecolumn_res0903內容簡介 · · · · · ·《像計算機科學家一樣思考python》按照培養讀者像計算機科學家一樣的思維方式的思路來教授python語言編程。全書貫穿的主體是如何思考、設計、開發的方法,而具體的程式語言,只是提供一個具體場景方便介紹的媒介。