創(chuàng)建類的方法比較簡單,如下:
站在用戶的角度思考問題,與客戶深入溝通,找到資源網(wǎng)站設(shè)計與資源網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋資源地區(qū)。
class Person:
注意,類的名稱一般用大寫字母開頭,這是慣例。當(dāng)然,如果故意不遵循此慣例,也未嘗不可,但是,會給別人閱讀乃至于自己以后閱讀帶來麻煩。既然大家都是靠右走的,你就別非要在路中間睡覺了。
接下來,一般都要編寫構(gòu)造函數(shù),在寫這個函數(shù)之前,先解釋一下什么是構(gòu)造函數(shù)。
復(fù)制代碼 代碼如下:
class Person:
def __init__(self, name, lang, website):
self.name = name
self.lang = lang
self.website = website
上面的類中,首先呈現(xiàn)出來的是一個名為:__init__()的函數(shù),注意,這個函數(shù)是以兩個下劃線開始,然后是init,最后以兩個下劃線結(jié)束。這是一個函數(shù),就跟我們此前學(xué)習(xí)過的函數(shù)一樣的函數(shù)。但是,這個函數(shù)又有點奇特,它的命名是用“__”開始和結(jié)束。
請看官在這里要明確一個基本概念,類就是一種對象類型,和跟前面學(xué)習(xí)過的數(shù)值、字符串、列表等等類型一樣。比如這里構(gòu)建的類名字叫做Person,那么就是我們要試圖建立一種對象類型,這種類型被稱之為Person,就如同有一種對象類型是list一樣。
在構(gòu)建Person類的時候,首先要做的就是對這種類型進(jìn)行初始化,也就是要說明這種類型的基本結(jié)構(gòu),一旦這個類型的對象被調(diào)用了,第一件事情就是要運行這個類型的基本結(jié)構(gòu),也就是類Person的基本結(jié)構(gòu)。就好比我們每個人,在頭腦中都有關(guān)于“人”這樣一個對象類型(對應(yīng)著類),一旦遇到張三(張三是一個具體人),我們首先運行“人”這個類的基本結(jié)構(gòu):一個鼻子兩只眼,鼻子下面一張嘴。如果張三符合這個基本機(jī)構(gòu),我們不會感到驚詫(不報錯),如果張三不符合這個基本結(jié)構(gòu)(比如三只眼睛),我們就會感到驚詫(報錯了)。
由于類是我們自己構(gòu)造的,那么基本結(jié)構(gòu)也是我們自己手動構(gòu)造的。在類中,基本結(jié)構(gòu)是寫在__init__()這個函數(shù)里面。故這個函數(shù)稱為構(gòu)造函數(shù),擔(dān)負(fù)著對類進(jìn)行初始化的任務(wù)。
還是回到Person這個類,如果按照上面的代碼,寫好了,是不是__init__()就運行起來了呢?不是!這時候還沒有看到張三呢,必須看到張三才能運行。所謂看到張三,看到張三這樣一個具體的實實在在的人,此動作,在python中有一個術(shù)語,叫做實例化。當(dāng)類Person實例化后立刻運行__init__()函數(shù)。
打開IDLE python GUI,點擊開始-所有程序-python2.7-IDLE python GUI,或者直接進(jìn)入dos環(huán)境,或者其他的IDLE。
請點擊輸入圖片描述
首先,創(chuàng)建一個簡單的自定義函數(shù),定義為K函數(shù)。
請點擊輸入圖片描述
假如x==Kill,那么,就可以代入剛才所創(chuàng)建的K函數(shù),最后返回一個語句,x為任意字符,空白字符也可以。
請點擊輸入圖片描述
要注意的是,用def創(chuàng)建函數(shù)的時候,k(x)括號里面是不用雙引號的,而調(diào)用自定義函數(shù)的時候,在括號了就要加上雙引號。
上面的定義函數(shù)比較簡單,只用了一個print輸出語句,現(xiàn)在,定義一個累加的函數(shù),就要用到while函數(shù)和if函數(shù)了。
請點擊輸入圖片描述
A函數(shù)是用來計算累加的,其中用到了一個while循環(huán)和if判斷,x為自定義變量,假如現(xiàn)在X為100,也就是說此函數(shù)計算1+2+3+...+100的和。
請點擊輸入圖片描述
函數(shù)是組織好,可重復(fù)使用的,用來實現(xiàn)相關(guān)功能的代碼段
函數(shù)提高了代碼的重復(fù)利用率和應(yīng)用的模塊性。
除Python自帶的函數(shù)之外,也可以自己創(chuàng)建函數(shù),叫做自定義函數(shù)
語法:
函數(shù)代碼塊以 def 開頭
參數(shù)為 輸入值 ,放于函數(shù)名后口號里面,
函數(shù)內(nèi)容以冒號:開始,函數(shù)體縮進(jìn), return 返回 輸出值
函數(shù)調(diào)用使用關(guān)鍵字參數(shù)來確定傳入的參數(shù)值,此時,如果多個函數(shù)則不需要按照指定順序。
在定義函數(shù)時,指定參數(shù)默認(rèn)值。調(diào)用時如果不傳入?yún)?shù),則使用默認(rèn)值
不定長部分如果沒有指定參數(shù),傳入是一個空元組
加了 兩個星號 ** 的參數(shù)會以字典的形式導(dǎo)入
/ 用來指明函數(shù)形參必須使用指定位置參數(shù),不能使用關(guān)鍵字參數(shù)的形式。
3.8版本之后的才能使用
不使用 def 定義函數(shù),沒有函數(shù)名
lamdba主體時一個表達(dá)式,而不是代碼塊,函數(shù)體比def簡單很多
定義在函數(shù)內(nèi)部的為局部變量,僅能在函數(shù)內(nèi)部使用
定義在函數(shù)外部的為全局變量,可在全局使用
模塊是將包含所有定義的函數(shù)和變量的文件,一般將同類功能的函數(shù)組和在一起稱為模塊。
模塊需要導(dǎo)入后,在調(diào)用相應(yīng)函數(shù)進(jìn)行使用
模塊導(dǎo)入的方法:
從模塊中導(dǎo)入一個指定的部分
把一個模塊的所有內(nèi)容全都導(dǎo)入
類是對象的模板,是抽象的。
構(gòu)造函數(shù) init 是Python魔術(shù)方法之一,如圖魔術(shù)方法
我們通過類模版去創(chuàng)建類的實例對象,然后再調(diào)用類定義的功能。
那實例對象的屬性是通過什么來初始化的?
這時候Python引入來構(gòu)造函數(shù) init
構(gòu)造函數(shù),會在創(chuàng)建實例對象之后Python會自動執(zhí)行此方法,把初始化的屬性特點放到實例對象里。
通過前面的學(xué)習(xí),我們知道一個python對象包含三個部分:id(識別碼),type(對象類型),value(對象的值)
那么我們進(jìn)一步深入對象包含的三部分:
我們通過類創(chuàng)建實例對象后,需要定義構(gòu)造函數(shù) init ()方法。
構(gòu)造方法用于執(zhí)行實例對象的初始化工作,即對象創(chuàng)建之后,初始化當(dāng)前對象的相關(guān)的屬性,無返回值
構(gòu)造函數(shù)重點 :
我們通過栗子來學(xué)習(xí)構(gòu)造函數(shù)的過程
構(gòu)造函數(shù)初始化實例對象過程如下:
1.Animal類會通過默認(rèn)的 new ()方法為實例對象在堆內(nèi)存中為開辟一個空間
敲黑板,重點來啦~
拓展:
我們今天學(xué)習(xí)了構(gòu)造函數(shù) init (),其在創(chuàng)建對象之后被Python自動調(diào)用初始化實例對象屬性數(shù)據(jù)值,無返回值,并且構(gòu)造函數(shù)不能被顯示調(diào)用。
創(chuàng)建對象時,如果需要,構(gòu)造函數(shù)可以接受參數(shù)。當(dāng)創(chuàng)建沒有構(gòu)造函數(shù)的類時,Python會自動創(chuàng)建一個不執(zhí)行任何操作的默認(rèn)構(gòu)造函數(shù)。
每個類必須有一個構(gòu)造函數(shù),即使它只依賴于默認(rèn)構(gòu)造函數(shù)
好啦,以上是本期內(nèi)容,歡迎大佬評論區(qū)指正~