(2018-04-01.Python從Zero到One)三、Python基礎(chǔ)__3.6.5__init__()方法

上一篇文章為:→3.6.4創(chuàng)建對(duì)象

__init__()方法

想一想:

在上一小節(jié)的demo中,我們已經(jīng)給BMW這個(gè)對(duì)象添加了2個(gè)屬性,wheelNum(車的輪胎數(shù)量)以及color(車的顏色),試想如果再次創(chuàng)建一個(gè)對(duì)象的話,肯定也需要進(jìn)行添加屬性,顯然這樣做很費(fèi)事,那么有沒有辦法能夠在創(chuàng)建對(duì)象的時(shí)候,就順便把車這個(gè)對(duì)象的屬性給設(shè)置呢?

答:

__init__()方法

<1>使用方式

def 類名:
    #初始化函數(shù),用來完成一些默認(rèn)的設(shè)定
    def __init__():
        pass

<2>__init__()方法的調(diào)用


# 定義汽車類
class Car:

    def __init__(self):
        self.wheelNum = 4
        self.color = '藍(lán)色'

    def move(self):
        print('車在跑,目標(biāo):夏威夷')

# 創(chuàng)建對(duì)象
BMW = Car()

print('車的顏色為:%s'%BMW.color)
print('車輪胎數(shù)量為:%d'%BMW.wheelNum)

day08_python面向?qū)ο?1-01.png

總結(jié)1

當(dāng)創(chuàng)建Car對(duì)象后,在沒有調(diào)用__init__()方法的前提下,BMW就默認(rèn)擁有了2個(gè)屬性wheelNum和color,原因是__init__()方法是在創(chuàng)建對(duì)象后,就立刻被默認(rèn)調(diào)用了

想一想

既然在創(chuàng)建完對(duì)象后__init__()方法已經(jīng)被默認(rèn)的執(zhí)行了,那么能否讓對(duì)象在調(diào)用__init__()方法的時(shí)候傳遞一些參數(shù)呢?如果可以,那怎樣傳遞呢?


# 定義汽車類
class Car:

    def __init__(self, newWheelNum, newColor):
        self.wheelNum = newWheelNum
        self.color = newColor

    def move(self):
        print('車在跑,目標(biāo):夏威夷')

# 創(chuàng)建對(duì)象
BMW = Car(4, 'green')

print('車的顏色為:%s'%BMW.color)
print('車輪子數(shù)量為:%d'%BMW.wheelNum)

day08_python面向?qū)ο?1-02.png

總結(jié)2

  • __init__()方法,在創(chuàng)建一個(gè)對(duì)象時(shí)默認(rèn)被調(diào)用,不需要手動(dòng)調(diào)用
  • __init__(self)中,默認(rèn)有1個(gè)參數(shù)名字為self,如果在創(chuàng)建對(duì)象時(shí)傳遞了2個(gè)實(shí)參,那么__init__(self)中出了self作為第一個(gè)形參外還需要2個(gè)形參,例如__init__(self,x,y)
  • __init__(self)中的self參數(shù),不需要開發(fā)者傳遞,python解釋器會(huì)自動(dòng)把當(dāng)前的對(duì)象引用傳遞進(jìn)去

下一篇文章為:→3.6.6應(yīng)用:創(chuàng)建多個(gè)對(duì)象
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.1面向?qū)ο?面向?qū)ο?object-oriented ;簡稱: OO)至今還沒有統(tǒng)一的概念 我這里把它定義為:...
    TENG書閱讀 636評(píng)論 0 0
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 4,194評(píng)論 1 10
  • 〇、前言 本文共108張圖,流量黨請(qǐng)慎重! 歷時(shí)1個(gè)半月,我把自己學(xué)習(xí)Python基礎(chǔ)知識(shí)的框架詳細(xì)梳理了一遍。 ...
    Raxxie閱讀 19,582評(píng)論 17 410
  • 上一篇:【維尼上學(xué)季(9)三好學(xué)生】 臨睡前,維尼在床上輾轉(zhuǎn)反側(cè),不能入睡, “媽媽,我好不想開學(xué)??!” 開學(xué)前這...
    張小妞Katey閱讀 833評(píng)論 0 2

友情鏈接更多精彩內(nèi)容