为什么要在基类使用私有数据_为什么要使用函数
歡迎回來,這里python學(xué)習(xí)的第十一篇筆記。在歷往的推送中,我們已經(jīng)或多或少的涉及到一些關(guān)于python函數(shù)的概念、用法。比如這一篇 ↓
手把手帶你學(xué) Python3(九)| 快速實(shí)現(xiàn)數(shù)據(jù)處理的不二工具
這段時(shí)間又系統(tǒng)的學(xué)習(xí)了一下函數(shù),所以再來絮絮叨一下,以作補(bǔ)充。
上一篇閱讀量 數(shù)月亮?好低換個(gè)顏色寫開頭
函數(shù)是什么
函數(shù),即實(shí)現(xiàn)一個(gè)特定功能的代碼段。是python中的重要技能(工具)。
函數(shù)離我們并不遠(yuǎn),早期我們已熟練使用了一些內(nèi)置函數(shù):例如input print等;
根據(jù)使用范圍可以將函數(shù)分為兩類:
主函數(shù)
我們會(huì)使用這樣來表示,它和代碼一樣,全局都是使用;
01?if?_name_?=?'_main_':
02?????print('This?is?main.')子函數(shù)
除了內(nèi)置函數(shù)外,這里就是發(fā)揮你洪荒之力的地方啦;
03?def?Plus(a,b):
04?????print(a+b)
另外,還能從實(shí)現(xiàn)不同的功能角度來區(qū)分,比如?匿名函數(shù)?以及高階函數(shù)?詳見實(shí)例說明:
圖片來源于 生信菜鳥團(tuán) python學(xué)習(xí)的第九篇
使用方法:
圖片來源于cnblog:癡海為什么要寫函數(shù)
看似好像按格式寫,實(shí)現(xiàn)簡(jiǎn)單目的的時(shí)候,代碼不是會(huì)顯得復(fù)雜?那么為什么要寫函數(shù)呢
首先是好看,連寵物都開始美容的年代,一代碼農(nóng)怎么能忍自己的代碼不好看呢(扯遠(yuǎn)了)那什么的代碼是好看的?我認(rèn)為規(guī)則有序,不一定方方正正,比如 Voronoi圖(維諾圖)
圖片來源于 果子學(xué)生信:我一直以為奧林匹克水立方上面的格子是亂畫的。那 Python中的規(guī)則呢,官方建議PEP8?:
圖片來源于?小碼哥如何七天入門python3
我們可以通過?Pycharm?中我們已經(jīng)說到如何快速使用規(guī)范代碼的方法,如上述提示。修改以后,虛線提示消失,符合主流規(guī)則,由于現(xiàn)在的代碼段數(shù)量較小,可能顯示不來大改變,但是習(xí)慣還是一開始就訓(xùn)練的好。
規(guī)范了以后就會(huì)帶來很多的好處,比如檢查以及理解代碼塊,如果在定義函數(shù)前在注釋一句話,那會(huì)對(duì)使用者更友好。
第二是代碼容易拆分,拆分的好處處理看起來整齊以外,還能將代碼提速,即調(diào)用需要的子函數(shù)實(shí)現(xiàn)功能。當(dāng)然,在實(shí)現(xiàn)一個(gè)復(fù)雜功能的時(shí)候,代碼塊可以分工給不同的人員來開發(fā),好比一畝三分田,提高協(xié)作效率。
第三是有序,避免代碼重復(fù)(DRY),同時(shí)可以厘清思路,比如代碼可以依據(jù)數(shù)據(jù)分析過程,從數(shù)據(jù)導(dǎo)入→數(shù)據(jù)清理→數(shù)據(jù)處理→數(shù)據(jù)可視化等逐一實(shí)現(xiàn)。同時(shí)也為易讀、易改做鋪墊。
DRY(Do not Repeat Yourself)原則,不要重復(fù)自己。
參數(shù)使用
在之前推送中我們簡(jiǎn)單提到過形參和實(shí)參,形參指形式參數(shù),通過賦值才具有意義,可以理解為變量;而對(duì)應(yīng)的實(shí)參就是具有實(shí)際意義的參數(shù),可以是字符串、數(shù)字等。
注意形參可以預(yù)先給定一個(gè)默認(rèn)值。如果調(diào)用不給實(shí)參,那么參數(shù)將使用默認(rèn)值;如果給定值,那么默認(rèn)的參數(shù)會(huì)被替換。在定義函數(shù)的過程中,一定要注意的形參的位置信息,如果對(duì)調(diào)的話可能造成的情況就是輸出錯(cuò)誤結(jié)果甚至報(bào)錯(cuò)。當(dāng)然,在調(diào)用過程中可以在函數(shù)中將參數(shù)直接定義,可以避免位置錯(cuò)誤帶來的麻煩。
例如我們舉一個(gè)內(nèi)置函數(shù)的例子map,這也在之前的推送中提到,主要用于對(duì)list中各元素的批量處理。
#將浮點(diǎn)數(shù)取整list_float?=?[1.1,?2.1,?3.5,?4.6,?5.2,?6.66,?7.877]
list_int?=?list(map(int,list_float))
????print(list_int)
#參數(shù)位置錯(cuò)位,就會(huì)報(bào)錯(cuò)
list_float?=?[1.1,?2.1,?3.5,?4.6,?5.2,?6.66,?7.877]
list_int?=?list(map(list_float,int))
????print(list_int)
TypeError:'type'?object?is?not?iterable
我們可以使用關(guān)鍵字實(shí)參來躲避位置錯(cuò)位帶來的問題:
#關(guān)鍵字實(shí)參01?def?Plus(a,b):
02?????print(a+b)
03
04
05?Plus(b=2,?a=1)
但是,如果項(xiàng)目中不確定需要傳遞幾個(gè)實(shí)參,也就是無法確定需要多少個(gè)形參,我們就需要使用如下的辦法來解決:
在定義函數(shù)過程中使用?*?來實(shí)現(xiàn)解釋任意多個(gè)形參。
*?在這個(gè)過程中指代一個(gè)空元祖。
返回return
一個(gè)完整的函數(shù)的都會(huì)有?return,返還值可為基本數(shù)據(jù)類型,同時(shí)可以返還一個(gè)表達(dá)式,如果沒有,返回?None
01?def?Plus(a,b):02?????add_sum?=?a+b
03?????return?add_sum
04?????#return?a+b
05?add_result?=?Plus(b=2,?a=1)
補(bǔ)充資料:內(nèi)置函數(shù)官方文檔
http://docs.python.org/3/library/functions.html
猜你喜歡
?三劍客 PyCharm使用??|?編程基礎(chǔ)與規(guī)范代碼?|?列表使用?
?元組拆包是個(gè)啥?|?字典與FASTA文件序列抽提?
如何判斷序列是否跨過剪切位點(diǎn)?|?python3 腳本小實(shí)戰(zhàn)
爬蟲小測(cè)試?|?函數(shù)入門
如何優(yōu)雅的數(shù)月餅
全國(guó)巡講約你
第1-11站北上廣深杭,西安,鄭州, 吉林,武漢,成都,港珠澳(全部結(jié)束)
一年一度的生信技能樹單細(xì)胞線下培訓(xùn)班(已結(jié)束)
全國(guó)巡講第13站-杭州(生信技能樹爆款入門課)(已結(jié)束)
中秋節(jié)一起來學(xué)習(xí)!全國(guó)巡講第16站-廣州(名額緊張)
如果你也有什么學(xué)函數(shù)好點(diǎn)子和建議,歡迎留言喲。
點(diǎn)擊原文 即刻擁有內(nèi)置函數(shù)官方文檔
點(diǎn)個(gè)在看再走唄
總結(jié)
以上是生活随笔為你收集整理的为什么要在基类使用私有数据_为什么要使用函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PS5 时代重拾经典?索尼推出《COD1
- 下一篇: 头部车企打架尾部遭殃 恒驰汽车北京仅剩一