新聞中心
提到類網(wǎng)上對(duì)它的解釋特別多,有長(zhǎng)篇大論的,也有簡(jiǎn)單的定義概括,似乎都不能讓人完全理解類到底是用來(lái)做什么的。剛?cè)腴T的python小白最怕的就是一知半解,這樣對(duì)以后的進(jìn)階學(xué)習(xí)很不利,小編當(dāng)然不能讓這種事情發(fā)生。所以找了一道數(shù)學(xué)題讓大家練練手,在解題的過(guò)程中理解類的含義。

舉個(gè)大家在中學(xué)都接觸過(guò)的例子:解三角形。
我需要做一個(gè)模塊,實(shí)現(xiàn)以下功能:輸入三角形的三條邊長(zhǎng)a,b,c,然后計(jì)算并返回該三角形三個(gè)角的角度,以及該三角形的面積、周長(zhǎng)。
你會(huì)說(shuō),這很簡(jiǎn)單啊,我們一般就這么做就行了,假如輸入三角形的邊長(zhǎng)為6,7,8:
def ...: # 參照公式把五個(gè)函數(shù)定義出來(lái),就不詳細(xì)寫了 ... def ...: ... # 然后調(diào)用定義好的函數(shù),傳入邊長(zhǎng)數(shù)據(jù) angleA(6,7,8) # 計(jì)算角A ->0.8127555613686607 # 注意返回值為弧度 angleB(6,7,8) # 計(jì)算角B ->1.0107210205683146 angleC(6,7,8) # 計(jì)算角C ->1.318116071652818 square(6,7,8) # 計(jì)算面積 ->20.33316256758894 circle(6,7,7) # 計(jì)算周長(zhǎng),額,好像有個(gè)數(shù)字寫錯(cuò)了 ->20 # 計(jì)算結(jié)果當(dāng)然也就錯(cuò)了
這不就搞定了嘛,把計(jì)算需要用到的五個(gè)函數(shù)依次定義出來(lái),然后調(diào)就好了。但大家仔細(xì)觀察一下,這樣寫有什么不太好的地方?相信大家都發(fā)現(xiàn)了,這是同一個(gè)三角形,每次計(jì)算角度、面積、周長(zhǎng)的時(shí)候,都要把三條邊的長(zhǎng)度傳進(jìn)去,一方面這很麻煩,另一方面,萬(wàn)一有一個(gè)不小心寫錯(cuò)了,那么那條結(jié)果當(dāng)然也就錯(cuò)了啊。
我們根據(jù)三角形全等的條件可以知道,三角形的三條邊確定了,那么它的三個(gè)角、面積、周長(zhǎng),也就都確定了。所以對(duì)于同一個(gè)三角形,最好只需要傳一次數(shù)據(jù)就可以了。
這不也簡(jiǎn)單嘛,把它們都寫在一個(gè)函數(shù)里不就得了:
def calculate(a,b,c):
angleA = ...
angleB = ...
angleC = ...
square = ...
circle = ...
return {'角A':angleA, '角B':angleB, '角C':angleC, '面積':square, '周長(zhǎng)':circle}
result=calculate(6,7,8)
result['角A']
->0.8127555613686607
result['面積']
->20.33316256758894通過(guò)數(shù)學(xué)中的知識(shí)是不是很好能夠理解python類是什么了呢?畢竟小編第一次去網(wǎng)上搜索資料后,看的還是云里霧里,好像明白了,但是要是有人問(wèn)還是說(shuō)不出個(gè)所以然。相信小伙伴們這次也能完全理解了吧。
網(wǎng)站欄目:創(chuàng)新互聯(lián)Python教程:python3類怎么學(xué)?可以應(yīng)用于數(shù)學(xué)嗎?
當(dāng)前路徑:http://m.fisionsoft.com.cn/article/dhpjpeh.html


咨詢
建站咨詢
