性夜影院午夜看片,无码精品久久一区二区三区,婷婷成人丁香五月综合激情,校园春色 qvod,性调教室高h学校

了解什么是Python面向?qū)ο螅?)

今天小編要跟大家分享的文章是了解什么是Python面向?qū)ο?/a>(4)?上一講我們用了兩道數(shù)學題為大家展示了面向?qū)ο蠛兔嫦蜻^程的不同,但是可能還有同學沒有看出面向?qū)ο蟮膬?yōu)勢,或者說覺得Python面向?qū)ο蟮膬?yōu)勢并不明顯,今天我們來舉一個稍微再復雜一點的例子,Python入門新手和正在進行Python學習的小伙伴快來看一看吧,希望能夠?qū)Υ蠹矣兴鶐椭?!

你覺得Python面向?qū)ο蟮膬?yōu)勢并不明顯,是因為我們現(xiàn)在接觸的程序還不夠復雜,等以后你寫的程序越來越大,就能體會到這其中的差別了,下面我們來做一個稍微復雜一點的。

仍然是從A地到B地,這次除了有汽車,我們還有了一輛自行車!

自行車和汽車有著相同的屬性:速度(speed)。還有一個相同的方法(drive),來輸出行駛/騎行一段距離所花的時間。但這次我們要給汽車增加一個屬性:每公里油耗(fuel)。而在汽車行駛一段距離的方法中,除了要輸出所花的時間外,還要輸出所需的油量。

面向過程的方法,你可能需要寫兩個函數(shù),然后把數(shù)據(jù)作為參數(shù)傳遞進去,在調(diào)用的時候要搞清應該使用哪個函數(shù)和哪些數(shù)據(jù)。有了面向?qū)ο螅憧梢园严嚓P的數(shù)據(jù)和方法封裝在一起,并且可以把不同類中的相同功能整合起來。這就需要用到面向?qū)ο笾械牧硪粋€重要概念:繼承。

我們要使用的方法是,創(chuàng)建一個叫做Vehicle的類,表示某種車,它包含了汽車和自行車所共有的東西:速度,行駛的方法。然后讓Car類和Bike類都繼承這個Vehicle類,即作為它的子類。在每個子類中,可以分別添加各自獨有的屬性。

Vehicle類被稱為基本類或超類,Car類和Bike類被成為導出類或子類。

class Vehicle:

def __init__(self, speed):

self.speed = speed

def drive(self, distance):

print 'need %f hour(s)' % (distance / self.speed)

class Bike(Vehicle):

pass

class Car(Vehicle):

def __init__(self, speed, fuel):

Vehicle.__init__(self, speed)

self.fuel = fuel

def drive(self, distance):

Vehicle.drive(self, distance)

print 'need %f fuels' % (distance * self.fuel)

b = Bike(15.0)

c = Car(80.0, 0.012)

b.drive(100.0)

c.drive(100.0)

解釋一下代碼:

__init__函數(shù)會在類被創(chuàng)建的時候自動調(diào)用,用來初始化類。它的參數(shù),要在創(chuàng)建類的時候提供。于是我們通過提供一個數(shù)值來初始化speed的值。

class定義后面的括號里表示這個類繼承于哪個類。Bike(Vehicle)就是說Bike是繼承自Vehicle中的子類。Vehicle中的屬性和方法,Bike都會有。因為Bike不需要有額外的功能,所以用pass在類中保留空塊,什么都不用寫。

Car類中,我們又重新定義了__init__和drive函數(shù),這樣會覆蓋掉它繼承自Vehicle的同名函數(shù)。但我們依然可以通過“Vehicle.函數(shù)名”來調(diào)用它的超類方法。以此來獲得它作為Vehicle所具有的功能。注意,因為是通過類名調(diào)用方法,而不是像之前一樣通過對象來調(diào)用,所以這里必須提供self的參數(shù)值。在調(diào)用超類的方法之后,我們又給Car增加了一個fuel屬性,并且在drive中多輸出一行信息。

最后,我們分別創(chuàng)建一個速度為15的自行車對象,和一個速度為80、耗油量為0.012的汽車,然后讓它們?nèi)バ旭?00的距離。

恭喜您在Python的道路上又堅持了一天,我們在Python面向?qū)ο筮@里學習了四節(jié)課,了解了Python面向?qū)ο蟮幕径x、用法,也通過案例對比了解了Python面向?qū)ο蠛兔嫦蜻^程的差異化及優(yōu)勢所在,但也還只能帶大家簡單了解、入門,更多的內(nèi)容還需要大家自己去學習。

以上就是小編今天為大家分享的關于了解什么是Python面向?qū)ο螅?)的文章,希望本篇文章能夠?qū)φ谶M行 Python學習 和從事Python相關工作的小伙伴們有所幫助,想要了解更多相關知識記得關注馬哥教育官網(wǎng),每天都會有大量優(yōu)質(zhì)內(nèi)容與大家分享!

免責聲明:內(nèi)容和圖片源自網(wǎng)絡,版權歸原作者所有,如有侵犯您的原創(chuàng)版權請告知,我們將盡快刪除相關內(nèi)容。

相關新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評如潮的Linux云計算運維、SRE、Devops、網(wǎng)絡安全、云原生、Go、Python開發(fā)專業(yè)人才培訓機構!