国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【Python從入門到實戰(zhàn)】一篇文章帶你搞懂Python中的類~

cloud / 3566人閱讀

摘要:小栗子對于可樂來講,只要是同一個品牌的可樂,他們就有著同樣的成分,這被稱之為配方。小栗子對于可樂來說,按照配方把可樂生產(chǎn)出來的過程就是實例化的過程。小栗子類的屬性與正常的變量并無區(qū)別。

前言

我是栗子,帶大家從零開始學(xué)習(xí)Python,希望每篇文章都能讓你收獲滿滿!

今天我們要說的是面向?qū)ο蟮暮诵?----類,類能幫我們把復(fù)雜的事情變得有條理,有順序,希望大

家通過學(xué)習(xí)類能改善自己的編碼風(fēng)格,使代碼變得更為好看,更加通俗易懂。

什么是類?

生物有不同的種類,食物有不同的種類,人類社會的種種商品也有不同的種類。但凡可被稱之為一

類的物體,他們都有著相似的特征和行為方式。用編程表示就是“類”(class)。

類是有一些系列有共同特征和行為事物的抽象概念的總和。

1)定義一個類

當(dāng)我們使用類的時候,首先需要創(chuàng)建一個類。使用關(guān)鍵字class可以做到這點;你還需要給這個類

起個名字和繼承關(guān)系。

小栗子:

對于可樂來講,只要是同一個品牌的可樂,他們就有著同樣的成分,這被稱之為配方。我們用

Python 中的類來表達(dá)這件事:

class CocaCola:    formula = ["caffeine","sugar","water","soda"]

2)類的實例化

我們繼續(xù)按照定義好的配方(類)來生產(chǎn)可樂。只要配方一樣味道都是相同的。

coke_for_me = CocaCola()coke_for_you = CocaCola()

在左邊我們創(chuàng)建一個變量,右邊寫上類的名稱,這樣看起來很像是賦值的行為,我們稱之為類的實例化。而被實例化后的對象,我們稱之為實例(instance),或者說是類的實例。

小栗子:

對于可樂來說,按照配方把可樂生產(chǎn)出來的過程就是實例化的過程。

print(CocaCola.formula)print(coke_for_me.formula)print(coke_for_you.formula)

運(yùn)行結(jié)果:

>>> ["caffeine","sugar","water","soda"]>>> ["caffeine","sugar","water","soda"]>>> ["caffeine","sugar","water","soda"]

3)類屬性引用

在類的名字后面輸入?.,IDE 就會自動聯(lián)想出我們之前在定義類的時候?qū)懺诶锩娴膶傩?,而這就是

類屬性的引用(attribute references)。類的屬性會被所有類的實例共享,所以當(dāng)你在類的實例后面

再點上?.?,索引用的屬性值是完全一樣的。

小栗子:

類的屬性與正常的變量并無區(qū)別。

for element in coke_for_me.formula:    print(element)

運(yùn)行結(jié)果:

>>> caffeine>>> sugar>>> water>>> soda

4)實例屬性

在創(chuàng)建了類之后,通過?object.new_atrr的形式進(jìn)行一個賦值,于是我們就得到了一個新的實例的變量,實例的變量就是實例變量,而實例變量有一個專有的術(shù)語,我們稱之為實例屬性(Instance Atrribute)。

小栗子:

通過下面的代碼,我們給在中國生產(chǎn)的可口可樂貼上了中文字樣的“可口可樂”標(biāo)簽,同樣的配方,不一樣的名稱,就帶來了不同的效果,中文的可樂變得更加受歡迎!

這說明生產(chǎn)的過程中有必要做一些獨有的本地化調(diào)整:

class CocaCola:    formula = ["caffeine","sugar","water","soda"]coke_for_China = CocaCola()coke_for_China.local_logo = "可口可樂"     #創(chuàng)建實例屬性print(coke_for_China.local_logo)          #打印實例屬性引用結(jié)果

運(yùn)行結(jié)果:

>>> 可口可樂

5)實例方法

類的實例可以引用屬性,方法就是函數(shù),但我們把這個函數(shù)稱之為方法(Method)

方法是供實例使用的,因此我們還可以稱之為實例方法(Instance Method)。

小栗子:

當(dāng)你喝掉一瓶可樂的時候,你會從咖啡因和大量的糖分中獲得能量,如果使用類的方法來表示可樂的這個“功能”的話,那應(yīng)該是這樣的:

class CocaCola:    formula = ["caffeine","sugar","water","soda"]    def drink(self):        print("Energy!")        coke = CocaCola()coke.drink()

運(yùn)行結(jié)果:

>>> Energy!

self?

我知道你現(xiàn)在的關(guān)注點一定在這個奇怪的地方——似乎沒有派上任何用場的?self?參數(shù)。我們來說明一下原理,其實很簡單,我們不妨修改一下代碼:

class CocaCola:    formula = ["caffeine","sugar","water","soda"]    def drink(coke):    # HERE!        print("Energy!")    coke = CocaCola()coke.drink()

運(yùn)行結(jié)果:

>>> Energy!

怎么樣,現(xiàn)在有些頭緒了吧?和你想的一樣,這個參數(shù)其實就是被創(chuàng)建的實例本身!就是將一個個對象作為參數(shù)放入函數(shù)括號內(nèi)。

再進(jìn)一步說,一旦一個類被實例化,那么我們其實可以同樣使用原來的方式:

coke = CocaColacoke.drink() == CocaCola.drink(coke) #左右兩邊的寫法完全一致

被實例化的對象會被編譯器默默地傳入后面方法的括號中,作為第一個參數(shù)。

上面這兩種方法是一樣的,但是我們更多地會寫成前面那種形式。

其實?self?這個參數(shù)名稱是可以隨意修改名稱的(編譯器并不會因此而報錯),但是按照 Python 的

規(guī)矩,我們還是統(tǒng)一使用?self。

類的繼承

時代在變遷,可樂的種類也在變化我們按照最新的來定于:

class CocaCola:    calories    = 140    sodium      = 45    total_carb  = 39    caffeine    = 34    ingredients =  [             "High Fructose Corn Syrup",        "Carbonated Water",        "Phosphoric Acid",        "Natural Flavors",        "Caramel Color",        "Caffeine"     ]    def __init__(self,logo_name):        self.local_logo = logo_name        def drink(self):        print("You got {} cal energy!".format(self.calories))

不同的本地化策略和新的種類的開發(fā),使得生產(chǎn)并非僅僅是換個標(biāo)簽這么簡單了,包裝、容積、甚至是配方都會發(fā)生變化,但唯一不變的是:它們永遠(yuǎn)是可口可樂。

所有的子品類都會繼承可口可樂的品牌,Python 中類自然也有對應(yīng)的概念,叫做類的繼承

(inheritance),我們拿無咖可樂(CAFFEINE-FREE)作為例子:

class CaffeineFree(CocaCola):    caffeine = 0    ingredients =  [        "High Fructose Corn Syrup",        "Carbonated Water",        "Phosphoric Acid",        "Natural Flavors",        "Caramel Color",    ]coke_a = CaffeineFree("Cocacola-FREE")coke_a.drink()

我們在新的類 CaffeineFree 后面的括號中放入 CocaCola,這就表示這個類是繼承于 CocaCola 這

個父類的,而 CaffeineFree 則成為了 CocaCola 子類。類中的變量和方法可以完全被子類繼承,

但如需有特殊的改動也可以進(jìn)行覆蓋(override)。

可以看到CAFFEINE-FREE存在著咖啡因含量、成分這兩處不同的地方,并且在新的類中也僅僅是

重寫了這兩個地方,其他沒有重寫的地方,方法和屬性都能照常使用。

結(jié)尾

哈哈哈 !文寫到這里結(jié)束了,下一篇入門到實戰(zhàn)的系列大概率會寫第三方模塊的一些東西,如果

有這方面還不是很清楚的小可愛,可以提前預(yù)約下~

源碼基地:點擊藍(lán)色字體或私信小編06即可免費拿!往期源碼也都在地哦~

想跟大家一起交流學(xué)習(xí)滴可以加入我的公眾號關(guān)注下哈:Python顧木子吖!

歡迎一起學(xué)習(xí)交流、往期的文章內(nèi)容項目素材源碼等都在里面可以找到滴!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/123371.html

相關(guān)文章

  • 以??簡單易懂??的語言帶你搞懂有監(jiān)督學(xué)習(xí)算法【附Python代碼詳解】機(jī)器學(xué)習(xí)系列之KNN篇

    必須要看的前言 本文風(fēng)格:以??簡單易懂??的語言帶你徹底搞懂KNN,了解什么是有監(jiān)督學(xué)習(xí)算法。 認(rèn)真看完這篇文章,徹底了解KNN、了解監(jiān)督學(xué)習(xí)算法絕對是一樣很簡單的事情。 注:本篇文章非常詳細(xì),同時我也附加了Python代碼,歡迎收藏后慢慢閱讀。 目錄 必須要看的前言監(jiān)督學(xué)習(xí)算法KNN/K近鄰算法1 算法原理1.1 實現(xiàn)過程1.2 距離的確定 2 算法的優(yōu)缺點3 算法的變種3.1 變...

    MoAir 評論0 收藏0
  • 道大廠面試題帶你搞懂事件循環(huán)機(jī)制

    本文涵蓋 面試題的引入 對事件循環(huán)面試題執(zhí)行順序的一些疑問 通過面試題對微任務(wù)、事件循環(huán)、定時器等對深入理解 結(jié)論總結(jié) 面試題 面試題如下,大家可以先試著寫一下輸出結(jié)果,然后再看我下面的詳細(xì)講解,看看會不會有什么出入,如果把整個順序弄清楚 Node.js 的執(zhí)行順序應(yīng)該就沒問題了。 async function async1(){ console.log(async1 start) ...

    ShowerSun 評論0 收藏0
  • 能做什么如何去做,帶你快速掌握Python編程基礎(chǔ)與實戰(zhàn)

    摘要:本文的分享主要圍繞以下幾個方面能做什么常見應(yīng)用場景介紹如何學(xué)習(xí)語法基礎(chǔ)實戰(zhàn)面向?qū)ο缶幊虒崙?zhàn)練熟基礎(chǔ)小游戲項目的實現(xiàn)與實戰(zhàn)一能做什么一種編程語言往往可以應(yīng)用于多方面,有些方面比較常用,有些方面極為常用。比如表示是一個空列表。 摘要:Python語言的教程雖然隨處可見,但是忙于日常業(yè)務(wù)/學(xué)習(xí)的你或許:一直想要找個時間學(xué)一點,但是又不知道該從何下手?本文將從Python能做什么,如何學(xué)習(xí)Py...

    BLUE 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<