python 物件的魔力--多型、封裝和繼承
簡單介紹下這幾個名詞的意思。
多型(Polymorphism):意味著可以對不同類的物件使用相同的操作。
封裝(Encapsulation): 即對外部世界隱藏物件的工作細節。
繼承(Inheritance): 以通用的類為基礎建立專門的類物件。
一、多型
多型意味著支援多種形態,就算你不知道變數所引用的物件型別是什麼,還是能對它進行操作,而它也會根據物件型別的不同而表現出不同的行為。舉例"count"和"repr":
>>> 'test'.count('t') 2 >>> ['a', 'b', 't'].count('a') 1對於變數x,不需要知道其是字串還是列表,直接呼叫它的count方法
我們先定義一個簡單函式
>>> def length(x): ... print "The length of ", repr(x), "is", len(x) ... >>> length('aaa') The length of 'aaa' is 3 >>> >>> length([1, 1, 3, 4, 5]) The length of [1, 1, 3, 4, 5] is 5
可以看出函式中使用repr函式, repr函式是多型特性的代表之一。
相關推薦
python 物件的魔力--多型、封裝和繼承
簡單介紹下這幾個名詞的意思。 多型(Polymorphism):意味著可以對不同類的物件使用相同的操作。 封裝(Encapsulation): 即對外部世界隱藏物件的工作細節。 繼承(Inheritance): 以通用的類為基礎建立專門的類物件。 一、多型 多型
python學習(十六)——多型、封裝、反射、、動態匯入模組、類內建attr方法
一、多型 # 不同的例項呼叫同樣的方法,產生不同的結果 # 多型來自繼承 class H2O: def __init__(self,name,temperature): self.name=name self.temperature=
多型?它的實現機制是什麼呢?過載和重寫的區別在那裡?這就是這一次我們要回顧的四個十分重要的概念:繼承、多型、過載和重寫。
什麼是多型?它的實現機制是什麼呢?過載和重寫的區別在那裡?這就是這一次我們要回顧的四個十分重要的概念:繼承、多型、過載和重寫。 繼承(inheritance) 簡單的說,繼承就是在一個現有型別的基礎上,通過增加新的方法或者重定義已有方法(下面會講到,這種方式叫重寫)的方式,產生一個新
C++多型、介面和虛基類的深入理解
表述一:在面嚮物件語言中,介面的多種不同實現方式即為多型。多型是指,用父類的指標指向子類的例項(物件),然後通過父類的指標呼叫實際子類的成員函式。 表述二:基類指標(或引用)的多種狀態,即基類指標所指物件的真實身份為基類則調基類中的函式表現基類的行為,為派生類則調派生類的函式表現為派生類的行為。作用是使基類
類和物件、封裝和繼承
類和物件 類和物件的關係 類是具有相同屬性和方法的一組物件的集合。 1. 從語義上理解:類是用於建立物件的模板,是一個抽象的概念,而物件是類的一個例項。 2. 從語法上理解:類是我們自定義的一種資料型別,而物件則是這種資料型別的變數。 類的定義
lua面向物件實現-類例項化物件、繼承、多型、多繼承、lua單例模式
lua面向物件實現: 一個類就像是一個建立物件的模具。有些面嚮物件語言提供了類的概念,在這些語言中每個物件都是某個特定類的例項。lua則沒有類的概念,每個物件只能自定義行為和形態。不過,要在lua中模擬類也並不困難。 lua中,面向物件是用元表這個機制來實現。
3.Java面向物件程式設計OOA/OOP/OOD/OOAD()/UML類圖、函數語言程式設計Scala(JVM)---類與物件、封裝繼承多型、構造方法、覆寫/重寫/override
一、緒論 1.面向物件程式設計正規化(C++、Java、Go)------能進行現實生活的抽象。 每個物件都是一個類。類中包含屬性與方法。 OOA:面向物件分析 OOP:面向物件程式設計
Java 009 面向物件(多型、抽象類、介面)
知識點梳理 心得體會 小知識點 1.多型中成員訪問特點:成員方法看左右,子類都會先訪問父類構造方法(先初始化父類成員才能被子類呼叫),其他只看左邊 2.多型缺點:不能使用子類特有功能,解決辦法有兩種:一、建立子類物件調方法(不合理且佔記憶體)二、向下轉型:Zi z=(Zi)
Java 知識點整理-3.面向物件(多型、抽象類、介面)
1、多型概述:事物存在的多種形態。 2、多型前提:要有繼承關係;要有方法重寫;要有父類引用指向子類物件(父類名 識別符號 = new 子類名();)。 3、多型中的成員訪問特點:Ⅰ.成員變數:編譯看左邊(父類),執行看左邊(父類)。 4、多型中的成員訪問特點:Ⅱ.成員方法:編譯看左邊(父
Cris 的Python筆記(十一):面向物件三大特徵之多型
''' Python 的多型:一個物件可以以不同的形態去呈現,實現方式相比 Java更加簡單 因為動態語言的特點,Python 無法實現在程式碼指向前對方法引數進行檢查,所以只要滿足指定方法體的要求,任何資料型別的物件都可以作為該方法的實參 ''' class A: def _
(D19)Python-封裝、多型、多繼承、重寫
封裝 enclosure 封裝是指隱藏類的實現細節,讓使用者不用關心這些細節 封裝的目的是讓使用者通過儘可能少的方法(或屬性)操作物件 私有屬性和方法: python類中以雙下劃線(’__’)開頭,不以雙下劃線結尾的識別符號為私有成員,
Java面向物件筆記(封裝、繼承、多型、抽象類、介面)
面向物件的思想在現實生活中很常見,例如專案開發,老闆想要實現某個功能,但是他自己不會這些技術,所以他就會讓員工去做這些事情,通過藉助別的擁有你想要實現某些功能的過程就可以理解為面向物件。 面向物件有三大特性:封裝、繼承、多型。 1.封裝:即是把函式或者工具類的實
Java物件和例項的關係、Java資料封裝、Java繼承和多型、Java抽象類和介面、Java靜態欄位和方法、Java包和作用域、Java的classpath和jar、Java核心類
Java物件和例項的關係: 面向物件程式設計(Object-Oriented Programming),是對現實世界建立計算機模型的一種方法。 class是物件的模板,它定義瞭如何建立例項,class的名字就是資料型別。一個class裡可以有多個欄位(field),欄位用
菜鳥學python第二十四天(面向物件三大特性之多型)
面向物件三大特性之多型 什麼是多型 不同物件響應同一種方法的表現出不同的行為,產生不同的結果 用基類建立一套統一的規則,強制子類去遵循(使用抽象類實現),這樣便可以 在不用考慮物件具體型別的前提下而直接使用物件下的方法 為什麼要有多型 增加了程式的靈活性 以不變應萬變,不論
Python:封裝、多型、多繼承、函式重寫、布林測試函式重寫、迭代器(高階)
用於類的函式: issubclass(cls,class_or_tuple)判斷一個類是否繼承自某個類class或某類tuple中的 一個類,如果是則返回true,否則返回false 示例: class A: pass cla
Python全棧學習筆記day 25:抽象類和介面類、多型、鴨子型別
一、介面類 python中沒有介面類 : python中自帶多繼承 所以我們直接用class來實現了介面類 抽象類、介面類 : 都是面向物件的開發規範 所有的介面類和抽象類都不能例項化 介面類 : python原生不支援 抽象類 : python原生支援的 栗子: c
黑馬程式設計師——Java面向物件(二)之封裝、繼承、多型、介面等
-----------android培訓、java培訓、java學習型技術部落格、期待與您交流!------------ 五、面向物件的特徵 面向物件主要有三大特徵: 1.特徵一 —— 封裝 1)定義:是指隱藏物件的屬性和實現細節,僅對外提供公共訪問方式。 2)好處:
類與介面之間關係、介面與介面之間關係、面向物件三大特徵之多型
一、類與介面之間關係: 實現關係。 1、類與介面要注意的事項: 1)重點內容非抽象類實現一個介面時,必須要把介面中所有方法全部實現。 2)抽象類實現一個介面時,可以實現也可以不實現介面中的 方法。 3)一個類可以實現多個介面 。 2、疑問: java為
Python基礎筆記_Day11_Python單繼承、多繼承、重寫方法、Python多型、Python靜態方法和類方法
Day11_Python單繼承、多繼承、重寫方法、Python多型、Python靜態方法和類方法 11.01_Python語言基礎(繼承的介紹)(掌握) 11.02_Python語言基礎(單繼承)(掌握) 11.03_Python語言基礎(多繼承)(掌握) 11.04_Python語言基
Python基礎(12):面向物件基礎(類,例項,封裝,繼承,多型)
一,什麼是面向物件? 面向物件,Object Oriented Programming,簡稱oop。是一種程式設計思想。 中心:將物件作為程式的基本單元。一個物件包含了資料和操作資料的函式。 python,一切皆物件。 二,類和例項 類,class,抽象的模板。 例項,i