久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

python面向?qū)ο缶幊獭惻c繼承 初認識

 靜幻堂 2018-10-07
極客饕餮 2018-09-20 20:20:28

ラムジ - PLANET.mp3

04:08

來自極客饕餮

一 類

三種編程模式:

1.命令式(使用語句,循環(huán)和函數(shù)).

2.函數(shù)式(使用純函數(shù),高階函數(shù)和遞歸recursion)

3.面向?qū)ο缶幊?oop)

對象時使用類來創(chuàng)建的,而這些類實際上是oop的模具.

類描述了對象是什么,但是和對象本身是分開的.換句話說,一個類可以被描述為一個對象的藍圖,描述或定義.

類使用關(guān)鍵字class和一個包含類方法的縮進塊創(chuàng)建的.

下面是一個簡單的類和它的對象的例子:

class Cat:

def __init__(self,color,legs):

self.color=color

self.legs=legs

felix=Cat("ginger",4)

rover=Cat("dog-colored",4)

stumpy=Cat("brown",3)

這段代碼定義了一個名為Cat的類,它有兩個屬性:color和legs

然后這個類被用來創(chuàng)建這個類的3個獨立的對象.

__init__方法是一個類中最重要的方法.它被稱為類的構(gòu)造函數(shù).

所有的方法都必須以self作為自己的第一個參數(shù),雖然它沒有被明確地傳遞,但是python為自己添加了自變量

在調(diào)用方法時,不需要包含它.在一個方法定義中,self指的是調(diào)用該方法的實例.

注意:__init__是兩個下劃線,不是_init_

類的實例具有屬性,這些屬性是與它們相關(guān)聯(lián)的數(shù)據(jù)片段

在這個例子中,Cat實例具有屬性color和legs.這些可以通過在一個實例之后加一個點和屬性名來訪問.

在__init__方法中,可以使用self.attribute來設置實例屬性的初始值.

class Cat:

def __init__(self,color,legs):

self.color=color

self.legs=legs

felix=Cat("ginger",4)

print(felix.color)

結(jié)果:

ginger

在上面的例子中,__init__方法接受兩個參數(shù)并將它們分配給對象的屬性.

類可以通過在類的主體內(nèi)分配變量來創(chuàng)建類屬性,也可以在類的主體內(nèi)定義其他方法來為其添加功能.這些可以通過從類的實例或類本身來訪問類屬性.只能通過實例來訪問自定義的方法.

例如:

class Dog:
legs=4
def __init__(self,name,color):
self.name=name
self.color=color
def bark(self):
print("woof!")
fido=Dog("Fido","brown")
print(fido.legs)
print(Dog.legs)
fido.bark()

結(jié)果:

4

4

woof!

使用Dog.bark()會報錯.

類屬性由類的所有實例共享.

嘗試訪問未定義的實例的屬性會導致AttributeError.這也適用于你調(diào)用未定義的方法.

二 繼承

繼承提供了一種在類之間共享功能的方法.

要從另一個類繼承一個類.要將超類(父類)放在類名后面的括號中.

例如:

python面向?qū)ο缶幊獭惻c繼承 初認識

結(jié)果:

brown

woof!

從另一個類繼承的類稱為子類

被繼承的被稱為超類

如果一個類繼承了另一個具有相同屬性或方法的類,它們的屬性和方法將覆蓋它們.

python面向?qū)ο缶幊獭惻c繼承 初認識

結(jié)果:

woof!

繼承也可以是間接的.比如,一個類B繼承類A,類C也可以繼承類B.但是不允許A繼承B(不允許循環(huán)繼承)

super函數(shù)是一個與父類繼承相關(guān)的函數(shù),它可以用來在對象的超類中找到具有特定名稱的方法.

例如:

class A:

def spam(self):

print(1)

class B(A):

def spam(self):

print(2)

super().spam()

B().spam()

結(jié)果:

2

1

super().spam()是調(diào)用超類的spam方法

每天堅持進步一點點.

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多