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