python类实例化_python基础8之类的实例化过程剖析
一、概述
之前我們說(shuō)關(guān)于python中的類,都一臉懵逼,都想說(shuō),類這么牛逼到底是什么,什么才是類?下面我們就來(lái)講講,什么是類?它具有哪些特性。
二、類的語(yǔ)法
2.1 語(yǔ)法
class dog(object): #用class定義類
"dog class" #對(duì)類的說(shuō)明
def __init__(self,name): #構(gòu)造函數(shù)或者是構(gòu)造方法,也可以叫初始化方法
self.name = name
def sayhi(self): #類方法
"sayhi funcation" #對(duì)類方法的說(shuō)明
print("hello,i am a dog,my name is ",self.name)
d = dog("alex") #定義一個(gè)d的對(duì)象,叫實(shí)例
d.sayhi() #調(diào)用實(shí)例的方法
2.2 self關(guān)鍵字
有很多小伙伴不禁的疑問(wèn),這個(gè)self是什么鬼?為什么在執(zhí)行sayhi函數(shù)時(shí),上面的self.name可以在函數(shù)中被調(diào)用?如下圖:
其實(shí)self 這個(gè)關(guān)鍵字相當(dāng)于實(shí)例化對(duì)象本身(self相當(dāng)于d),在實(shí)例化過(guò)程中,把自己傳進(jìn)去了,我們隊(duì)上面的兩行做一下解釋:
2.3 函數(shù)__init__()
在類中__init__()函數(shù)叫構(gòu)造函數(shù),又叫構(gòu)造方法,也可以叫初始化函數(shù)。它的作用就是初始化實(shí)例時(shí),初始化傳入實(shí)例的的默認(rèn)值。如果不寫__init__(),就會(huì)調(diào)用的默認(rèn)為空的__init__(),說(shuō)白了,這個(gè)方法不管你寫不寫,都會(huì)調(diào)用,而且,一旦實(shí)例化就會(huì)調(diào)用。
class dog(object):
"dog class"
def __init__(self,name): #構(gòu)造方法,不寫調(diào)用默認(rèn)的構(gòu)造方法
self.name = name
def eat(self,food):
print("the dog name is {0},it like food is {1}".format(self.name,food))
d = dog("alex")
d.eat("hotdog")
#輸出
the dog name is alex,it like food is hotdog
三、總結(jié)
最后我們畫一個(gè)圖,來(lái)說(shuō)明一下實(shí)話過(guò)程的圖,不然真的很難理解這個(gè)玩意:
由上圖可知:其實(shí)self,就是實(shí)例本身!你實(shí)例化時(shí)python會(huì)自動(dòng)把這個(gè)實(shí)例本身通過(guò)self參數(shù)傳進(jìn)去。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的python类实例化_python基础8之类的实例化过程剖析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何在python官网下载pip_[Py
- 下一篇: python数据变更邮件提醒_如何使py