上一篇文章為:→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)去