是一種程式設計范型
作用: 提高軟體的重用性和靈活性,擴充套件性
世界萬物一切皆為物件,物件即是指由特定狀態,特徵,行為的實體
知識點一: **的重用
舉個栗子
比如小月月有了乙個女朋友1,因為一些其他原因,這個女朋友1離開了,不久以後,小月月又
找到了乙個女朋友2,那麼這個女朋友2和女朋友1肯定是有一些基本的共性的 ,比如走路,
是個女性,都有自己的名字,這時候,如果小月月是個富二代,他想找個小三,小三也具有
這些基本的共性,所以他就可以很快的new出來乙個小三,只需要在此基礎上新增額外自己想要
的功能就可以了,我們把這些基本的功能寫成**這個時候
注意了:
通過物件導向,就可以實現一些基本功能的多次呼叫
疑點:通
過函式式程式設計好像也可以實現類似**重用的功能?
但是自己寫的**有時候需要傳入乙個引數,來告訴這個**是誰在呼叫它,不然以前的去女朋友1來呼叫
這段**的時候,你都不知道,想想是一件很恐怖的事情,所以通過物件導向就不需要傳入引數 可以直接
呼叫,物件導向會自己識別,是誰在呼叫這段**......
知識點二:**的繼承和封裝
小月月是東北人 ,小月月生活的很幸福,他們生了乙個boby,小月月當父親了,這個boby會有一些地方
像小月月對吧 ,
因為他是小月月的孩子嘛,帥氣的外表,智慧型的大腦 ,好了
注意了:
這個時候通過物件導向把小boby封裝起來,繼承小月月的(比如東北話)**屬性
疑點:
函式式程式設計可以實現啊 ,為什麼要用面物件呢?
函式式程式設計是通過字典的形式把這種父與子的關係寫入到記憶體中,然後來實現繼承一些**屬性,
所以寫在記憶體中,這就允許了任何人都可以來改動,當然在我們現實生活中這是不允許的
而物件導向會把這個小boby封裝起來,可以正常呼叫,並且保持繼承的關係 外面的人不知道怎麼實現的,
是改動不了的,所以你懂了....
知識點三: 多型
乙個人可以對於吃來說,可以有不同的形式
比如說你可以站著吃飯 ,你也可以坐著吃飯
知識點四:類的定義
class person(object): #宣告了乙個類pass
people_one = person("bds")
class:是乙個抽象的,泛指的東西
person: 代表所有人,乙個物種,人的一些基本的特徵 ,
比如說名字,血液,毛髮,
people_one: 這就是乙個生動的現實的人類,是乙個物件
一句話: people_one是通過class person 例項化出來的乙個物件
**演示:
class person(object):def __init__(self,name) #初始化函式
self.name = name
def say_name(self):
print "my name is %s" % self.name
p_one = person("bds")
p_one.say_name()
p_one是person例項化的乙個物件,在例項化物件時 ,就會執行初始化函式,所以比如一些基本的特徵,屬性
就可以通過初始化函式來定義
理解:什麼樣的特徵需定義self呢?
乙個吃的特徵,每個人都是一樣的,每個人都可以吃,所以這個就是大家共性的,就不需要初始化來區別,但是
比如名字,每個人的都不同的,所以這個name 就需要初始化函式來定義name,來區別每個人。
方法,屬性,函式,功能
舉個栗子
假如有乙個杯子,他有各種各種的屬性,長,寬,高,形狀
它有乙個功能之一是用來裝水,我們呼叫這個裝水的動作就叫做方法
函式實現各種功能 呼叫功能的動作就是方法
函式 --> 功能 --> 方法
來自為知筆記(wiz)
Python物件導向這樣理解更簡單
python雖然是解釋型語言,但從設計之初就已經是一門物件導向的語言,對於python來說一切皆為物件。正因為如此,在python中建立乙個類和物件是很容易的,當然如果習慣面向過程或者函式的寫法也是可以的,python並不做硬性的限制。python的物件導向特徵如下 封裝 物件導向程式設計中的術語物...
python物件導向的理解
把資料和功能結合起來,用稱為物件的東西包裹起來組織程式的方法。這種方法稱為,物件導向的程式設計理念 物件可以使用普通的屬於物件的變數儲存資料。屬於乙個物件或類的變數被稱為域。物件也可以使用屬於類的函式來具有功能。這樣的函式 被稱為類的方法。這些術語幫助我們把它們與孤立的函式和變數區分開來。域和方法可...
python物件導向的理解
首先,物件導向是對於現實世界的自然延伸,在自然世界中,一切物體都可以劃歸為某個類別,而每個單獨的個體都是某個類別中的例項物件,即所謂 萬物皆可為物件 物件導向有三大特點 封裝 繼承和多型。封裝是將某一類事物的屬性和行為劃為一種類,它的意義在於使其屬性私有化 行為公開化,哪怕不明白此類的運作方式,也可...