很多初學(xué)的小伙伴們,在學(xué)到“類”的時(shí)候,就開始犯迷糊了。“類”到底是個(gè)什么東西,是用來干嘛的?然后就百度搜索,搜出了很多。一看回答,很多都是在扯什么面向?qū)ο?,還講了一堆稀奇古怪的概念,看了反而更迷糊了。所以,我這篇文章,就是要帶大家,用最簡(jiǎn)單、通俗、暴力的方式理解什么是類,類能干什么,怎么使用。
首先,我們要明白,既然python的作者設(shè)計(jì)了“類”這個(gè)東西,那肯定是在編程的時(shí)候有這種需求的。那我們什么時(shí)候需要用到類呢?當(dāng)然,可以用到類的地方有很多很多。但如果大家還沒有太多的代碼經(jīng)驗(yàn),我就直接告訴你們答案了:如果多個(gè)函數(shù)需要反復(fù)使用同一組數(shù)據(jù),使用類來處理,會(huì)很方便。
面向?qū)ο缶幊淌窃诿嫦蜻^程編程的基礎(chǔ)上發(fā)展來的,它比面向過程編程具有更強(qiáng)的靈活性和擴(kuò)展性。面向?qū)ο缶幊淌浅绦騿T發(fā)展的分水嶺,很多初學(xué)者會(huì)因無法理解面向?qū)ο蠖艞墝W(xué)習(xí)編程。
面向?qū)ο缶幊?Object-orientedProgramming,簡(jiǎn)稱OOP),是一種封裝代碼的方法。其實(shí),在前面章節(jié)的學(xué)習(xí)中,我們已經(jīng)接觸了封裝,比如說,將亂七八糟的數(shù)據(jù)扔進(jìn)列表中,這就是一種簡(jiǎn)單的封裝,是數(shù)據(jù)層面的封裝;把常用的代碼塊打包成一個(gè)函數(shù),這也是一種封裝,是語句層面的封裝。
打個(gè)比方,若在某游戲中設(shè)計(jì)一個(gè)烏龜?shù)慕巧瑧?yīng)該如何來實(shí)現(xiàn)呢?使用面向?qū)ο蟮乃枷霑?huì)更簡(jiǎn)單,可以分為如下兩個(gè)方面進(jìn)行描述:從表面特征來描述,例如,綠色的、有4條腿、重10kg、有外殼等等。從所具有的的行為來描述,例如,它會(huì)爬、會(huì)吃東西、會(huì)睡覺、會(huì)將頭和四肢縮到殼里,等等。
如果將烏龜用代碼來表示,則其表面特征可以用變量來表示,其行為特征可以通過建立各種函數(shù)來表示。參考代碼如下所示: