菜鳥學(xué)python
今天,本菜鳥學(xué)到了Python里面的 面對(duì)對(duì)象,糾結(jié)了一天,現(xiàn)在對(duì)今天學(xué)到的東西做了總結(jié)和分析,希望對(duì)你們有用!
面向?qū)ο蟾攀?/p>
朋友-> 數(shù)量少!#
-> 朋友越來越多,好朋友、普通朋友、一般朋友..
-> 朋友逐漸增加,閨蜜、知己、藍(lán)顏、紅顏...
-> 分類
人-> 認(rèn)識(shí)世界
周圍的事情簡單(上小學(xué),交作業(yè))-> 一個(gè)一個(gè)記憶
周圍的事情-復(fù)雜(上大學(xué)、貸款)-> 做事情的步驟
周圍的事情-極度復(fù)雜(生活-進(jìn)入社會(huì))-> 思考[三思而后行]
代碼->還原過程
簡單的代碼操作-> 基礎(chǔ)語法,堆疊功能[變量、數(shù)據(jù)類型、運(yùn)算、if 、while]
函數(shù)式編程-> 將所有要處理的事情,開始封裝成具備一定處理功能的函數(shù),調(diào)用執(zhí)行:
面向過程編程:面向~設(shè)身處地?fù)Q位思考--面向過程
開發(fā)人員~當(dāng)你在完成這件事情時(shí)需要按照什么樣的步驟進(jìn)行操作
將這樣的操作步驟封裝在函數(shù)中,通過函數(shù)可以調(diào)用執(zhí)行
這樣的開發(fā)操作~代碼中封裝了大量的包含處理步驟的函數(shù)——面向過程編程
適合中小型項(xiàng)目開發(fā);大型項(xiàng)目開發(fā)[代碼的邏輯處理方式不夠成熟,導(dǎo)致代碼高耦合!]
面向?qū)ο缶幊?> 對(duì)面向過程編程的補(bǔ)充和完善
通過對(duì)象和對(duì)象之間的交互協(xié)作完成項(xiàng)目功能的開發(fā)
面向?qū)ο螅好嫦颍?br>
對(duì)象:
面向?qū)ο螅喝f物皆對(duì)象
對(duì)象:類型、特征、行為
分門別類:按照大量事物的外觀特征和行為操作,將不同的事物分成不同的類型,方便區(qū)分
類型 vs 事物 什么關(guān)系?
類型:是一個(gè)名稱、是一個(gè)概念、是一個(gè)稱呼;
是從大量有相似外觀特征和相似行為的事物中抽象出來的
如:車、人、美女、衣服、鞋子、電腦、桌子、凳子..
類型: 數(shù)據(jù)類型的簡稱!自定義數(shù)據(jù)類型
事物:是某種類型具體存在的,有具體特征的、有具體行為的物體!
屬于某種類型的-> 屬于某種數(shù)據(jù)類型的
有具體的外觀特征
有具體的行為操作
面向?qū)ο螅捍a體現(xiàn)
類型 vs 對(duì)象
1.類型:代碼中可以通過class關(guān)鍵字,自定義一個(gè)數(shù)據(jù)類型
(1)數(shù)據(jù)類型:簡稱類型:簡稱類-> 自定義數(shù)據(jù)類型-> 自定義 類
(2)基本語法:
class 類型名稱:
類型中的代碼
(3)類型名稱命名規(guī)范:見名知意、駝峰命名法[一個(gè)或者多個(gè)英文單詞組成、每個(gè)單詞首字母大寫]
(4)類型:通過項(xiàng)目中需要的大量有相似特征和行為的對(duì)象,抽象出來的一個(gè)數(shù)據(jù)類型
2.對(duì)象:
對(duì)象:有具體特征和行為操作的事物
代碼:有具體(特征)屬性和(行為)方法的對(duì)象-> 事物
3. 類型 VS 對(duì)象 區(qū)別?
類型:通過對(duì)象抽象出來的一個(gè)數(shù)據(jù)類型
類型中需要定義對(duì)象需要的特征[屬性|變量]和行為[方法]
class Person:
# 定義屬性、特征
# 固定寫法:在__init__方法中,定義類型的屬性
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
# 定義方法、行為
def eat(self, food):
print("吃飯了")
注意1:class 關(guān)鍵字,用來聲明定義一個(gè)類型,固定寫法
注意2:類型中的所有函數(shù),第一個(gè)參數(shù)self表示當(dāng)前對(duì)象,類似生活中的一個(gè)名詞:我
注意3:類型中的函數(shù),必須稱為方法;
函數(shù) VS 方法 : 兩個(gè)東西
方法是一種特殊的函數(shù),只能在類型中使用!
注意4:類型中方法,第一個(gè)參數(shù):指代的是當(dāng)前對(duì)象~~~一般被聲明為self
表示當(dāng)前對(duì)象,調(diào)用的時(shí)候不需要傳遞數(shù)據(jù)給self!
對(duì)象:某中類型一個(gè)具體存在的事物
代碼中的對(duì)象,需要通過類型來創(chuàng)建
如:tom = Person('湯姆', 18, '男')
通過 類型名稱() 的方式創(chuàng)建對(duì)象
創(chuàng)建對(duì)象時(shí),自動(dòng)調(diào)用執(zhí)行__init__()方法,將對(duì)象需要的數(shù)據(jù)傳遞過去
有了對(duì)象,就可以執(zhí)行對(duì)象的行為:調(diào)用對(duì)象的方法
通過 對(duì)象的變量.方法()直接調(diào)用
tom.eat("魚香肉絲")
類型的定義
1.類型的聲明
通過class 關(guān)鍵字直接聲明定義一個(gè)自定義類型
語法:
class 數(shù)據(jù)類型名稱:
pass
2.類型: 專門用來差創(chuàng)建對(duì)象
創(chuàng)建對(duì)象:包含具體數(shù)據(jù)的實(shí)體
語法:
變量 = 數(shù)據(jù)類型()
- 對(duì)象:是有特征的?!
對(duì)象是有特征的,項(xiàng)目需要這樣的特征,就定義它,如果不需要就忽略它!
4.調(diào)用執(zhí)行方法:類似與調(diào)用執(zhí)行函數(shù)
方法的調(diào)用執(zhí)行:必須通過對(duì)象的引用變量進(jìn)行調(diào)用!
author = Author()
author.introduction()