什么是面向?qū)ο螅?br>
類(lèi)和對(duì)象的區(qū)別吃既?
類(lèi)的聲明定義語(yǔ)法操作斧蜕?
聲明定義類(lèi)型
初始化類(lèi)型屬性
定義類(lèi)型的方法
對(duì)象的創(chuàng)建渺杉、屬性的調(diào)用蛇数、方法的調(diào)用
1.面向?qū)ο蟮母拍?/h1>
面向?qū)ο缶褪峭ㄟ^(guò)代碼操作還原生活場(chǎng)景,
簡(jiǎn)單的代碼操作-> 基礎(chǔ)語(yǔ)法,堆疊功能[變量是越、數(shù)據(jù)類(lèi)型耳舅、運(yùn)算、if倚评、while]
萬(wàn)物皆為對(duì)象,對(duì)象主要分為類(lèi)型浦徊,特征馏予,行為。按照大量食物的外觀(guān)特征和行為操作盔性,將不同的事物分為不同的類(lèi)型霞丧,方便區(qū)分對(duì)象。
類(lèi)型:是一個(gè)名稱(chēng)冕香、是一個(gè)概念蛹尝、是一個(gè)稱(chēng)呼;
是從大量有相似外觀(guān)特征和相似行為的事物中抽象出來(lái)的
2.類(lèi)型和對(duì)象的區(qū)別:
類(lèi)型:通過(guò)對(duì)象抽象出來(lái)的一個(gè)數(shù)據(jù)類(lèi)型
類(lèi)型中需要定義對(duì)象需要的特征[屬性|變量]和行為[方法]
3.類(lèi)型的聲明定義語(yǔ)法操作:
注意1:class 關(guān)鍵字悉尾,用來(lái)聲明定義一個(gè)類(lèi)型箩言,固定寫(xiě)法
注意2:類(lèi)型中的所有函數(shù),第一個(gè)參數(shù)self表示當(dāng)前對(duì)象焕襟,類(lèi)似生活中的一個(gè)名詞:我
注意3:類(lèi)型中的函數(shù),必須稱(chēng)為方法饭豹;
函數(shù) VS 方法 : 兩個(gè)東西
方法是一種特殊的函數(shù)鸵赖,只能在類(lèi)型中使用!
注意4:類(lèi)型中方法拄衰,第一個(gè)參數(shù):指代的是當(dāng)前對(duì)象~~~一般被聲明為self
表示當(dāng)前對(duì)象它褪,調(diào)用的時(shí)候不需要傳遞數(shù)據(jù)給self!
4.類(lèi)的聲明定義
通過(guò)class 關(guān)鍵字進(jìn)行定義
----------------------------------
class 數(shù)據(jù)類(lèi)型名稱(chēng):
類(lèi)型中的代碼
example:
# 創(chuàng)建一個(gè)Person類(lèi)型
class Person:
pass
5.初始化類(lèi)型的屬性
創(chuàng)建對(duì)象a = Author()-> Author.new()方法創(chuàng)建對(duì)象
-> Author.init()方法初始化數(shù)據(jù)
-> 得到一個(gè)Author對(duì)象
6.定義類(lèi)型的方法
通過(guò) 類(lèi)型名稱(chēng)() 的方式創(chuàng)建對(duì)象
創(chuàng)建對(duì)象時(shí)翘悉,自動(dòng)調(diào)用執(zhí)行init()方法茫打,將對(duì)象需要的數(shù)據(jù)傳遞過(guò)去
有了對(duì)象,就可以執(zhí)行對(duì)象的行為:調(diào)用對(duì)象的方法
通過(guò) 對(duì)象的變量.方法()直接調(diào)用
7.對(duì)象的創(chuàng)建
創(chuàng)建對(duì)象
變量 = 類(lèi)型名稱(chēng)()
tom = Person()
tom:變量妖混,存儲(chǔ)了Person()對(duì)象的內(nèi)存地址
--對(duì)象的引用變量【變量中存放的是可以引用到對(duì)象的內(nèi)存地址】
使用對(duì)象:直接通過(guò)變量操作對(duì)象
print(type(tom))--> <class '__main__'.Person>
8.方法調(diào)用執(zhí)行
調(diào)用執(zhí)行方法:類(lèi)似與調(diào)用執(zhí)行函數(shù)
方法的調(diào)用執(zhí)行:必須通過(guò)對(duì)象的引用變量進(jìn)行調(diào)用老赤!
author = Author()
author.introduction()
9.屬性的調(diào)用
定義屬性、特征
# 固定寫(xiě)法:在__init__方法中制市,定義類(lèi)型的屬性
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender