python中實(shí)例化是什么意思-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!

成都創(chuàng)新互聯(lián)公司始終堅(jiān)持【策劃先行,效果至上】的經(jīng)營(yíng)理念,通過(guò)多達(dá)十載累計(jì)超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的全網(wǎng)營(yíng)銷推廣解決方案,現(xiàn)已廣泛運(yùn)用于各行各業(yè)的客戶,其中包括:不銹鋼雕塑等企業(yè),備受客戶贊譽(yù)。

python中實(shí)例化是什么意思?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

類的名稱一般用大寫(xiě)字母開(kāi)頭,這是慣例。當(dāng)然,如果故意不遵循此慣例,也未嘗不可,但是,會(huì)給別人閱讀乃至于自己以后閱讀帶來(lái)麻煩。既然大家都是靠右走的,你就別非要在路中間睡覺(jué)了。

接下來(lái),一般都要編寫(xiě)構(gòu)造函數(shù),在寫(xiě)這個(gè)函數(shù)之前,先解釋一下什么是構(gòu)造函數(shù)。

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

上面的類中,首先呈現(xiàn)出來(lái)的是一個(gè)名為:init()的函數(shù),注意,這個(gè)函數(shù)是以兩個(gè)下劃線開(kāi)始,然后是init,最后以兩個(gè)下劃線結(jié)束。這是一個(gè)函數(shù),就跟我們此前學(xué)習(xí)過(guò)的函數(shù)一樣的函數(shù)。但是,這個(gè)函數(shù)又有點(diǎn)奇特,它的命名是用“__”開(kāi)始和結(jié)束。

請(qǐng)看官在這里要明確一個(gè)基本概念,類就是一種對(duì)象類型,和跟前面學(xué)習(xí)過(guò)的數(shù)值、字符串、列表等等類型一樣。比如這里構(gòu)建的類名字叫做Person,那么就是我們要試圖建立一種對(duì)象類型,這種類型被稱之為Person,就如同有一種對(duì)象類型是list一樣。

在構(gòu)建Person類的時(shí)候,首先要做的就是對(duì)這種類型進(jìn)行初始化,也就是要說(shuō)明這種類型的基本結(jié)構(gòu),一旦這個(gè)類型的對(duì)象被調(diào)用了,第一件事情就是要運(yùn)行這個(gè)類型的基本結(jié)構(gòu),也就是類Person的基本結(jié)構(gòu)。就好比我們每個(gè)人,在頭腦中都有關(guān)于“人”這樣一個(gè)對(duì)象類型(對(duì)應(yīng)著類),一旦遇到張三(張三是一個(gè)具體人),我們首先運(yùn)行“人”這個(gè)類的基本結(jié)構(gòu):一個(gè)鼻子兩只眼,鼻子下面一張嘴。如果張三符合這個(gè)基本機(jī)構(gòu),我們不會(huì)感到驚詫(不報(bào)錯(cuò)),如果張三不符合這個(gè)基本結(jié)構(gòu)(比如三只眼睛),我們就會(huì)感到驚詫(報(bào)錯(cuò)了)。

由于類是我們自己構(gòu)造的,那么基本結(jié)構(gòu)也是我們自己手動(dòng)構(gòu)造的。在類中,基本結(jié)構(gòu)是寫(xiě)在init()這個(gè)函數(shù)里面。故這個(gè)函數(shù)稱為構(gòu)造函數(shù),擔(dān)負(fù)著對(duì)類進(jìn)行初始化的任務(wù)。

還是回到Person這個(gè)類,如果按照上面的代碼,寫(xiě)好了,是不是init()就運(yùn)行起來(lái)了呢?不是!這時(shí)候還沒(méi)有看到張三呢,必須看到張三才能運(yùn)行。所謂看到張三,看到張三這樣一個(gè)具體的實(shí)實(shí)在在的人,此動(dòng)作,在python中有一個(gè)術(shù)語(yǔ),叫做實(shí)例化。當(dāng)類Person實(shí)例化后立刻運(yùn)行init()函數(shù)。
上面關(guān)于類的講解很形象生動(dòng)!

#!/usr/bin/env python
 #coding:utf-8
 
class Person:
     def __init__(self, name, lang, website):
         self.name = name
         self.lang = lang
         self.website = website
 
info = Person("qiwsir","python","qiwsir.github.io")     #實(shí)例化Person
 print "info.name=",info.name
 print "info.lang=",info.lang
 print "info.website=",info.website
 
#上面代碼的運(yùn)行結(jié)果:
 
info.name= qiwsir
 info.lang= python
 info.website= qiwsir.github.io

在上面的代碼中,建立的類Person,構(gòu)造函數(shù)申明了這個(gè)類的基本結(jié)構(gòu):name,lang,website。

注意觀察:info=Person(“qiwsir”,”python”,”qiwsir.github.io”),這句話就是將類Person實(shí)例化了。也就是在內(nèi)存中創(chuàng)建了一個(gè)對(duì)象,這個(gè)對(duì)象的類型是Person類型,這個(gè)Person類型是什么樣子的呢?就是init()所構(gòu)造的那樣。在實(shí)例化時(shí),必須通過(guò)參數(shù)傳入具體的數(shù)據(jù):name=”qiwsir”,lang=”python”,website=”qiwsir.github.io”。這樣在內(nèi)存中就存在了一個(gè)對(duì)象,這個(gè)對(duì)象的類型是Person,然后通過(guò)賦值語(yǔ)句,與變量info建立引用關(guān)系。請(qǐng)看官回憶以前已經(jīng)講述過(guò)的變量和對(duì)象的引用關(guān)系。

類和實(shí)例
?“類提供默認(rèn)行為,是實(shí)例的工廠”,我覺(jué)得這句原話非常經(jīng)典,一下道破了類和實(shí)例的關(guān)系??瓷厦娲a,體會(huì)一下,是不是這個(gè)理?所謂工廠,就是可以用同一個(gè)模子做出很多具體的產(chǎn)品。類就是那個(gè)模子,實(shí)例就是具體的產(chǎn)品。所以,實(shí)例是程序處理的實(shí)際對(duì)象。
?類是由一些語(yǔ)句組成,但是實(shí)例,是通過(guò)調(diào)用類生成,每次調(diào)用一個(gè)類,就得到這個(gè)類的新的實(shí)例。
?對(duì)于類的:class Person,class是一個(gè)可執(zhí)行的語(yǔ)句。如果執(zhí)行,就得到了一個(gè)類對(duì)象,并且將這個(gè)類對(duì)象賦值給對(duì)象名(比如Person)。

self的作用

細(xì)心的看官可能注意到了,在構(gòu)造函數(shù)中,第一個(gè)參數(shù)是self,但是在實(shí)例化的時(shí)候,似乎沒(méi)有這個(gè)參數(shù)什么事兒,那么self是干什么的呢?

self是一個(gè)很神奇的參數(shù)。

在Person實(shí)例化的過(guò)程中,數(shù)據(jù)”qiwsir”,”python”,”qiwsir.github.io”通過(guò)構(gòu)造函數(shù)(init())的參數(shù)已經(jīng)存入到內(nèi)存中,并且這些數(shù)據(jù)以Person類型的面貌存在組成一個(gè)對(duì)象,這個(gè)對(duì)象和變量info建立的引用關(guān)系。這個(gè)過(guò)程也可說(shuō)成這些數(shù)據(jù)附加到一個(gè)實(shí)例上。這樣就能夠以:object.attribute的形式,在程序中任何地方調(diào)用某個(gè)數(shù)據(jù),例如上面的程序中以info.name得到”qiwsir”這個(gè)數(shù)據(jù)。這種調(diào)用方式,在類和實(shí)例中經(jīng)常使用,點(diǎn)號(hào)“.”后面的稱之為類或者實(shí)例的屬性。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。

網(wǎng)頁(yè)標(biāo)題:python中實(shí)例化是什么意思-創(chuàng)新互聯(lián)
文章URL:http://muchs.cn/article20/egjjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、外貿(mào)網(wǎng)站建設(shè)用戶體驗(yàn)、小程序開(kāi)發(fā)、響應(yīng)式網(wǎng)站微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)