小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Python中_init_的通俗解釋是什么樣的?

 靜幻堂 2018-08-25

Python是面向?qū)ο蟮木幊陶Z言,因此我從Class、Instance以及屬性(property/attribute)的角度出發(fā)解釋。


_init_根據(jù)其英文意思(initialize),用來初始化一個類(class)的新成員(instance),它是一個constructor.

當(dāng)新成員被創(chuàng)建時,這個方程會自動被調(diào)用。


僅舉倆個(極端的)例子作對比,為了不復(fù)雜化導(dǎo)致混淆,建議只看1~


1,使用_init_方程

我們創(chuàng)建了一個叫做“人類”(Person)的類別,他有倆個必要屬性(property):性別(gender)和年齡(age)

class Person: def __init__(self, name, age): self.name = name self.age = age

有了_init_函數(shù),每次我們創(chuàng)建人類這個類別的新的成員(Instance)時,我們就必須賦予gender和age這倆個參數(shù)--否則新的成員不能稱作為“人類”~

(注:self是一個指向?qū)ο蟮闹羔槪?/p>

請看程序運(yùn)行案例:

可以看到,當(dāng)我輸入

p1=Person()

程序報(bào)錯了,因?yàn)橐獎?chuàng)建一個人類新成員,你就必須輸入性別和年齡這倆個必要選項(xiàng)。

而當(dāng)我輸入

p2=Person('James', 10)

程序運(yùn)行成功了,一個10歲的名叫James的人類新成員被創(chuàng)建成功!

并且你可以通過輸入

p2.name
p2.age

來查看這位新成員的名字和年齡。


2,不使用_init_方程

是不是一定要使用_init_方程呢?

當(dāng)然不是,但是,沒有了這個方程,類別和成員的概念就變得稍許模糊。

下面我們創(chuàng)建了一個叫做Anthing(任何生物)的類別,該類別沒有“屬性”,有一個方程init_person以及方程的倆個變量name和age。

class Anything:
def init_person(self, _name, _age):
self.name= _name
self.age = _age

這個類沒有_init_方程,因此,創(chuàng)建新成員a2時,我們不需要輸入任何的“屬性”參數(shù)

a2=Anything()

這也導(dǎo)致了這個類定義的模糊--這個類別下的新成員a2到底是神馬?(這里我們叫它anything)

反而,當(dāng)我們在創(chuàng)建新成員試圖輸入“名字”和“年齡”這倆個“屬性”時,程序報(bào)錯了。

a1=Anything('Dick', 5)

因此,我們創(chuàng)建了一個我們對它毫無認(rèn)知的新成員a2。


但是,這個類里有一個方程叫做“創(chuàng)建人類成員”(init_person),并且它有倆個輸入變量“名字”和“年齡”。

我們嘗試調(diào)用這個方程把a(bǔ)2“變成”一個人類:

a2.init_person('Dick', 5)、

編譯通過了,a2變成了一個5歲的叫Dick的人類。

并且你可以通過輸入

a2.name
a2.age

來查看它的名字和年齡。


倆點(diǎn)注意處:

1.這個叫Dick的人其實(shí)是init_person()這個方程“創(chuàng)造”的。

2. 在Anything這個類下,我們還可以定義其他方程

def init_dog(self, _color, _age):
self.color = _color
self.age = _age

這個時候,如果我們運(yùn)行

a2.init_dog('Black', 4)

那么,a2這個成員又變成了一條4歲的黑色的狗!

9 贊 3評論
分享
舉報(bào)

_init_根據(jù)其英文意思(initialize),用來初始化一個類(class)的新成員(instance),它是一個constructor.

當(dāng)新成員被創(chuàng)建時,這個方程會自動被調(diào)用。

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多