資訊內容
講解Python核心基礎之面向對象
AVo少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
相關免費學習推薦:python視頻教程AVo少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
1、面向對象簡介AVo少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
Python從設計之初就已經是一門面向對象的語言,正因為如此,在Python中創建一個類和對象是很容易的。如果你以前沒有接觸過面向對象的編程語言,那你可能需要先了解一些面向對象語言的一些基本特征,在頭腦里頭形成一個基本的面向對象的概念,這樣有助于你更容易的學習Python的面向對象編程。AVo少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
? Python是一門面向對象的編程語言
? 所謂面向對象的語言,簡單理解就是語言中的所有操作都是通過對象來進行的
? 面向過程
? 面向過程指將我們的程序分解為一個一個步驟,通過對每個步驟的抽象來完成程序
? 這種編寫方式往往只適用于一個功能,如果要實現別的功能,往往復用性比較低
? 這種編程方式符號人類的思維,編寫起來比較容易
? 1.媽媽穿衣服穿鞋出門
? 2.媽媽騎上電動車
? 3.媽媽到超市門口放好電動車
? 4.媽媽買西瓜
? 5.媽媽結賬
? 6.媽媽騎電動車回家
? 7.到家孩子吃西瓜
? 面向對象的編程語言,關注的是對象,而不注重過程,對于面向對象一切皆對象
? 以上方式可以用 孩子媽媽給孩子買瓜來解決
? 面向對象的編程思想,將所有功能統一保存到對應的對象中,要使用某個功能,直接找到對應的對象即可
? 這種編碼方式比較容易閱讀,并且易于維護,容易復用。但是編寫的過程中不太符合常規的思維,編寫相對麻煩AVo少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
面向對象(Object oriented Programming,OOP)編程 的思想主要是針對大型軟件設計而來的。面向對象編程將數據和操作數據相關的方法封裝到對象中,組織代碼和數據的方式更加接近人的思維,使程序的擴展性更強、可讀性更好,從而大大提高了編程的效率。
Python 完全采用了面向對象的思想,是真正面向對象的編程語言,完全支持面向對象的基本功能,例如:繼承、多態、封裝等。
Python 中,一切皆對象。例如,數據類型、函數等,都是對象。AVo少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
相同點: 都是解決問題的思維方式,都是代碼組織的方式
不同點:
面向過程(Procedure Oriented)思維: 面向過程編程更加關注的是“程序的邏輯流程”,是一種“執行者”思維,適合編寫小規模的程序。
面向對象(Object Oriented)思維: 面向對象更加關注的是“軟件中對象之間的關系”,更契合人的思維模式,是一種“設計者”思維,適合編寫大規模的程序。面向對象可以幫助我們從宏觀上把握、從整體上分析整個系統。
但是,具體到實現部分的微觀操作(就是一個個方法),仍然需要面向過程的思路去處理。面向過程和面向對象是相輔相成的,面向對象離不開面向過程。
面向對象思考方式 遇到復雜問題,先從問題中找名詞(面向過程更多的是找動詞),然后確立這些名詞哪些可以作為類,再根據問題需求確定的類的屬性和方法,確定類之間的關系。AVo少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
2. 類(class)AVo少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
創建類我們目前學習的都是Python的內置對象,但是內置對象并不都能滿足我們的需求,所以我們在開發中經常要自定義一些對象List item類簡單理解它就是相當于一個圖紙,在程序匯總我們需要根據類來創建對象。類就是對象的圖紙我們也稱對象是類的實例(instance)如果多個對象是通過一個類創建的,我們稱這些對象是一類對象類也是一個對象,類就是用來創建對象的對象可以像對象中添加變量,對象中的變量稱之為屬性 語法:對象.屬性名 = 屬性值class MyClass(): pass
類是抽象的,也稱之為“對象的模板”。 我們需要通過類這個模板,創建類的實例對象,然后才能使用類定義的功能。
而在Python中,Python對象包括幾個部分:AVo少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
所以,我們需要定義構造函數 init() 方法,該方法會向我們所定義的對象中賦予對象的屬性。構造方法用于執行“實例對象的初始化工作”,即對象創建后,初始化當前對象的相關屬性,無返回值。AVo少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
init()的要點如下:AVo少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
名稱固定,必須為:init()
第一個參數固定,必須為:self。 self 指的就是剛剛創建好的實例對象。
構造函數通常用來初始化實例對象的實例屬性,例如,示例1中初始化實例屬性:name和sound
通過“類名(參數列表)”來調用構造函數。調用后,將創建好的對象返回給相應的變量。比如: cat = Animal(‘小花’,‘喵喵’)
__init __()方法:初始化創建好的對象,初始化指的是:“給實例屬性賦值”
__new __()方法: 用于創建對象,但我們一般無需重定義該方法。
如果我們不定義__init__方法,系統會提供一個默認的__init__方法。如果我們定義了帶參的__init__方法,系統不創建默認的__init__方法。
注:
Python 中的 self 相當于 C++中的 self 指針,JAVA 和 C#中的 this 關鍵字。Python 中,self 必須為構造函數的第一個參數,名字可以任意修改。但一般遵守慣例,都叫做 self。
3. 類的定義AVo少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
? 類和對象都是對現實生活中事物的抽象
? 事物包含兩部分
? 1. 數據(屬性)
? 2. 行為(方法)
? 調用方法 對象.方法名()
? 方便調用和函數調用的區別:如果是函數調用,調用時有幾個形參,就會傳遞幾個實參。如果是方法調用,默認傳遞一個參數,所以方法中至少得有一個形參
? 在類代碼塊中,我們可以定義變量和函數
? 變量會成為該類實例的公共屬性,所有的該實例都可以通過 對象.屬性名的形式訪問
? 函數會成為該類實例的公共方法,所有該類實例都可以通過 對象.方法名的形式訪問AVo少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
4. 參數selfAVo少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
屬性和方法? 類中定義的屬性和方法都是公共的,任何該類實例都可以訪問
? 屬性和方法的查找流程
? 當我們調用一個對象的屬性時,解析器會現在當前的對象中尋找是否還有該屬性,如果有,則直接返回當前的對象的屬性值。如果沒有,則去當前對象的類對象中去尋找,如果有則返回類對象的屬性值。如果沒有就報錯
? 類對象和實例對象中都可以保存屬性(方法)
? 如果這個屬性(方法)是所以的實例共享的,則應該將其保存到類對象中
? 如果這個屬性(方法)是摸個實例獨有的。則應該保存到實例對象中
? 一般情況下,屬性保存到實例對象中 而方法需要保存到類對象中AVo少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
方法是從屬于實例對象的方法。實例方法的定義格式如下:
def 方法名(self ,[形參列表]):
函數體AVo少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
方法的調用格式如下:
對象.方法名([實參列表]) 要點:AVo少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
定義實例方法時,第一個參數必須為 self。和前面一樣,self 指當前的實例對象。 調用實例方法時,不需要也不能給 self
傳參。self 由解釋器自動傳參 函數和方法的區別AVo少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
都是用來完成一個功能的語句塊,本質一樣。 方法調用時,通過對象來調用。方法從屬于特定實例對象,普通函數沒有這個特點。
直觀上看,方法定義時需要傳遞 self,函數不需要。 實例對象的方法調用本質: altAVo少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
類中其他操作:AVo少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
dir(obj)可以獲得對象的所有屬性、方法 obj.dict 對象的屬性字典 pass 空語句,相當于占位符。
isinstance(對象,類型) 判斷“對象”是不是“指定類型”。AVo少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
AVo少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺
<link rel="stylesheet"/><link rel="stylesheet"/>以上就是講解Python核心基礎之面向對象的詳細內容,更多請關注少兒編程網其它相關文章!AVo少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

- 上一篇
描述Python類屬性
簡介相關免費學習推薦:python視頻教程__getattr__是當類調用一個不存在的屬性時才會調用getattr魔法函數,他傳入的值item就是你這個調用的不存在的值。classUser(object):def__init__(self,name,info):self.name=nameself.in
- 下一篇
零基礎python培訓后薪資有多少?
簡介零基礎python培訓后薪資有多少?python開發的第三方招聘信息網站顯示15k左右,具體薪資多少根據個人的能力以及工作年限都有很大的關系。Python應用廣泛在軟件質量控制、提升開發效率、可移植性、組件集成、豐富庫支持等方面均處占優勢。無論是從入門級選手到專業級開發人員都在做的爬蟲,Web程序開