python多个对象调用类方法、且之间有联系_趣味解读Python面向对象编程 (类和对象)...
一、面向?qū)ο蠛喗?/p>
考慮現(xiàn)實生活中,我們的思維方式是放在學(xué)生這個個人上,是學(xué)生做了自我介紹。而不是像我們剛剛寫出的代碼,先有了介紹的行為,再去看介紹了誰。
用我們的現(xiàn)實思維方式該怎么用程序表達(dá)呢?
面向過程:根據(jù)業(yè)務(wù)邏輯從上到下寫代碼。
面向?qū)ο?#xff1a;將數(shù)據(jù)與函數(shù)綁定到一起,進(jìn)行封裝,這樣能夠更快速的開發(fā)程序,減少了重復(fù)代碼的重寫過程。面向過程編程最易被初學(xué)者接受,其往往用一長段代碼來實現(xiàn)指定功能,開發(fā)過程的思路是將數(shù)據(jù)與函數(shù)按照執(zhí)行的邏輯順序組織在一起,數(shù)據(jù)與函數(shù)分開考慮。
今天來學(xué)習(xí)一種新的編程方式:面向?qū)ο缶幊?Object Oriented Programming,OOP,面向?qū)ο蟪绦蛟O(shè)計)。
面向?qū)ο缶幊痰?個非常重要的概念:類和對象。
對象是面向?qū)ο缶幊痰暮诵?#xff0c;在使用對象的過程中,為了將具有共同特征和行為的一組對象抽象定義,提出了另外一個新的概念——類。
類就相當(dāng)于制造飛機(jī)時的圖紙,用它來進(jìn)行創(chuàng)建的飛機(jī)就相當(dāng)于對象。
二、分析類與對象
1. 類
物以類聚,人以群分。
具有相似內(nèi)部狀態(tài)和運(yùn)動規(guī)律的實體的集合(或統(tǒng)稱為抽象)。
具有相同屬性和行為事物的統(tǒng)稱。
類是抽象的,在使用的時候通常會找到這個類的一個具體的存在,使用這個具體的存在,一個類可以找到多個對象。
2. 對象
某一個具體事物的存在 ,在現(xiàn)實世界中可以是看得見摸得著的。可以是直接使用的。
3. 類和對象之間的關(guān)系
小總結(jié):類就是創(chuàng)建對象的模板。
4. 區(qū)分類和對象
奔馳smart 類
張三的那輛奔馳smart 對象
水果 類
蘋果 類
紅蘋果 類 紅富士蘋果 類
我嘴里吃了一半的蘋果 對象
5. 類的構(gòu)成
類(Class) 由3個部分構(gòu)成
類的名稱:類名
類的屬性:一組數(shù)據(jù)
類的方法:允許對對象進(jìn)行操作的方法 (行為)
舉例:
1)人類設(shè)計,只關(guān)心3樣?xùn)|西:
事物名稱(類名):人(Person)
屬性:身高(height)、年齡(age)
方法(行為/功能):跑(run)、打架(fight)
2)狗類的設(shè)計
類名:狗(Dog)
屬性:品種 、毛色、性別、名字、 腿兒的數(shù)量
方法(行為/功能):叫 、跑、咬人、吃、搖尾巴
6. 類的抽象
如何把日常生活中的事物抽象成程序中的類?
擁有相同(或者類似)屬性和行為的對象都可以抽象出一個類。
方法:一般名詞都是類(名詞提煉法)
<1> 坦克發(fā)射3顆炮彈轟掉了2架飛機(jī)
<2> 小明在公車上牽著一條叼著熱狗的狗
<3>【想一想】如下圖中,有哪些類呢?
說明:
人
槍
子彈
手榴彈
刀子
箱子
<4>【想一想】如下圖中,有哪些類呢?
說明:
向日葵
類名:xrk
屬性:顏色、品類
行為:放陽光
豌豆
類名:wd
屬性:顏色 、發(fā)型、血量
行為:發(fā)炮、搖頭
堅果:
類名:jg
屬性:血量、類型
行為:阻擋
僵尸:
類名:js
屬性:顏色、血量、 類型、速度
行為:走、跑跳、吃、死
三、項目
1. 定義類
定義一個類,格式如下:
class 類名:
方法列表
demo:定義一個Cat類
# 定義類
class Cat:
# 方法 def eat(self):
print("貓在吃魚....")
def drink(self):
print("貓在喝可樂...")
說明:
定義類時有2種:新式類和經(jīng)典類,上面的Cat為經(jīng)典類,如果是Cat(object)則為新式類
類名的命名規(guī)則按照"大駝峰"。
2. 創(chuàng)建對象
Python中,可以根據(jù)已經(jīng)定義的類去創(chuàng)建出一個個對象。
創(chuàng)建對象的格式為:
對象名 = 類名()
創(chuàng)建對象demo:
# 定義一個類
class Cat:
# 屬性
# 方法
def eat(self):
print("貓在吃魚....")
def drink(self): print("貓在喝可樂...")
# 根據(jù)類,創(chuàng)建一個對象tom = Cat()
3. 調(diào)用對象的方法
class Cat:
# 屬性
# 方法
def eat(self):
print("貓在吃魚....")
def drink(self): print("貓在喝可樂...")
# 創(chuàng)建了一個對象tom = Cat()tom.eat() # 調(diào)用對象的eat方法tom.drink()
運(yùn)行結(jié)果,如圖所示:
4. 給對象添加屬性
class Cat:
# 屬性 # 方法 def eat(self): print("貓在吃魚....")
def drink(self): print("貓在喝可樂...")
# 創(chuàng)建了一個對象tom = Cat()# 給對象tom添加了一個屬性,叫name,里面的值是"湯姆"
tom.name = "湯姆"
# 給對象tom添加了一個屬性,叫age,里面的值是30
tom.age = 30
# 調(diào)用tom的方法tom.eat()tom.drink()print(tom.name)
print(tom.age)
運(yùn)行結(jié)果,如圖所示:
5. 通過方法獲取對象屬性。
class Cat:
# 屬性 # 方法 def eat(self): print("貓在吃魚....")
def drink(self): print("貓在喝可樂...")
def introduce(self): # print("名字是:%s, 年齡是:%d" % (湯姆的名字, 湯姆的年齡))
print("名字是:%s, 年齡是:%d" % (tom.name, tom.age))
# 創(chuàng)建了一個對象tom = Cat()# 給對象tom添加了一個屬性,叫name,里面的值是"湯姆"
tom.name = "湯姆"
tom.age = 30
# 調(diào)用tom的方法tom.eat()tom.drink()# 直接通過對象獲取其屬性print(tom.name)
print(tom.age)
print("-"*30)
# 調(diào)用tom的方法,在其方法中獲取它的屬性tom.introduce()
運(yùn)行結(jié)果,如圖所示:
四、總結(jié)
本文以生活中的基礎(chǔ)現(xiàn)象為切入點(diǎn),主要介紹了Python的面向?qū)ο蠡A(chǔ)知識,用豐富的案例幫助大家更好的去了解對象,最后以一只貓作為小項目,使用Python編程語言,方便大家增加對類和對象的認(rèn)識,希望對大家的學(xué)習(xí)有幫助。
想學(xué)習(xí)更多Python網(wǎng)絡(luò)爬蟲與數(shù)據(jù)挖掘知識,大家可前往專業(yè)網(wǎng)站:http://pdcfighting.com/
總結(jié)
以上是生活随笔為你收集整理的python多个对象调用类方法、且之间有联系_趣味解读Python面向对象编程 (类和对象)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android实现背景音乐播放
- 下一篇: python模块实例化_python中z