1,什么是面對(duì)對(duì)象
首先要知道面對(duì)對(duì)象是一種思想。
操作難點(diǎn)不在于語(yǔ)法,而在于分析!
面向?qū)ο螅?面向?qū)ο笫歉蟮姆庋b,根據(jù)職責(zé)在一個(gè)對(duì)象里封裝多個(gè)方法,順序地讓不同的對(duì)象調(diào)用不同的方法
類和對(duì)象
?類和對(duì)象是面向?qū)ο缶幊痰膬蓚€(gè)核心概念 類是一群具有相同特征或者行為的事物的統(tǒng)稱,是抽象的,不能直接使用,特征被稱為屬性,行為被稱為方法 類相當(dāng)于一個(gè)一個(gè)模板,是負(fù)責(zé)創(chuàng)建對(duì)象的 對(duì)象是類創(chuàng)建出來的一個(gè)具體的存在,可以直接使用,由什么類創(chuàng)建的對(duì)象,就擁有那個(gè)類中定義的屬性和方法 在程序開發(fā)中,先有類再有對(duì)象 :
class Article:
def __into__(self,title,contend,author):
?????? self.title = title self.contend = contend
?????? self.author = author def a_title(self):
????????? ?return self.title
?def a_contend(self):
?????????? return self.contend
def a_author(self):
????????? return self.author
1. 類型的聲明
?通過 class 關(guān)鍵字直接聲明定義一個(gè)自定義類型
語(yǔ)法:
?class 數(shù)據(jù)類型名稱:
??? pass
2. 類型:專門用來創(chuàng)建對(duì)象
創(chuàng)建對(duì)象:包含具體數(shù)據(jù)的實(shí)體
?語(yǔ)法:
變量 = 數(shù)據(jù)類型()
3. 對(duì)象:是有特征的! 項(xiàng)目需要這樣的特征,就定義它,如果不需要就忽略它!
?語(yǔ)法:對(duì)象的特征~是需要在類型中定義的!
在通過類型創(chuàng)建對(duì)象時(shí),才會(huì)給具體的特征賦值 給對(duì)象的特征賦值,
固定語(yǔ)法:在__init__()函數(shù)中操作
class Author:
?????? ?def __init__(self, username, password, nickname):
?????????????? ?self.username = username
??????????????? self.password = password
?????????????? ?self.nickname = nickname
python中通過類型創(chuàng)建對(duì)象[a = Author()]會(huì)自動(dòng)調(diào)用__init__()方法
創(chuàng)建對(duì)象a = Author()-> Author.__new__()方法創(chuàng)建對(duì)象
?????????? ?-> Author.__init__()方法初始化數(shù)據(jù)
??????????????????????? -> 得到一個(gè)Author對(duì)象
在Python中,有一種特殊的函數(shù):魔法函數(shù)
?每個(gè)魔法函數(shù)有一些特定的功能,方法名稱都是固定的
?魔法函數(shù)的命名規(guī)則:函數(shù)的前后各有兩個(gè)下劃線
3. 對(duì)象,是有行為的?!
對(duì)象的行為,分析~是否和對(duì)象本身的數(shù)據(jù)有關(guān)!
?生活:分析~行為是否跟自己的身份和責(zé)任有關(guān)!
?對(duì)象的行為:對(duì)象的方法:就是一個(gè)普通函數(shù)的升級(jí)
?將一個(gè)函數(shù),定義在類型的內(nèi)部,第一個(gè)參數(shù)~設(shè)置為可以接受對(duì)象的參數(shù):self
class Author:
?定義一個(gè)行為:個(gè)人介紹
?def introduction(self):
?print("個(gè)人介紹.........")
注意:方法和函數(shù)的最大的區(qū)別:第一個(gè)參數(shù)可以隱式接受當(dāng)前對(duì)象作為實(shí)際參數(shù)
?方法是定義在類型的內(nèi)部的!
?方法的調(diào)用必須通過對(duì)象的引用變量調(diào)用
函數(shù)中的任何形式參數(shù),在調(diào)用的時(shí)候都需要明確的傳遞數(shù)據(jù)
函數(shù)是定在在類型的外部的!
函數(shù)的調(diào)用直接通過函數(shù)名稱調(diào)用
調(diào)用執(zhí)行方法:類似與調(diào)用執(zhí)行函數(shù)
?方法的調(diào)用執(zhí)行:必須通過對(duì)象的引用變量進(jìn)行調(diào)用!
?author = Author()
?author.introduction()