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