乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

       靜幻堂 2018-08-25

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


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

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


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


      1,使用_init_方程

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

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

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

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

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

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

      p1=Person()

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

      而當(dāng)我輸入

      p2=Person('James', 10)

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

      并且你可以通過(guò)輸入

      p2.name
      p2.age

      來(lái)查看這位新成員的名字和年齡。


      2,不使用_init_方程

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

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

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

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

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

      a2=Anything()

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

      反而,當(dāng)我們?cè)趧?chuàng)建新成員試圖輸入“名字”和“年齡”這倆個(gè)“屬性”時(shí),程序報(bào)錯(cuò)了。

      a1=Anything('Dick', 5)

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


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

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

      a2.init_person('Dick', 5)、

      編譯通過(guò)了,a2變成了一個(gè)5歲的叫Dick的人類(lèi)。

      并且你可以通過(guò)輸入

      a2.name
      a2.age

      來(lái)查看它的名字和年齡。


      倆點(diǎn)注意處:

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

      2. 在Anything這個(gè)類(lèi)下,我們還可以定義其他方程

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

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

      a2.init_dog('Black', 4)

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

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

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

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

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

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類(lèi)似文章 更多