Python(八)之函數
Python函數
函數作用:
(1)代碼重用
(2)一種設計工具,分解復雜問題
(3)將相關功能打包並參數化
函數種類:
全局函數:定義在模塊中
局部函數:嵌套在其他函數中
lambda函數:表達式
方法:與特定數據類型關聯的函數,並且只能與數據類型關聯一起使用(定義在類中的函數)
內置函數
Python閉包:
可變參數解包:個數必須要匹配
lambda表達式
函數式編程
filter內置函數
reduce實現折疊
Python閉包:閉包叫lexical closure(詞法閉包),外層給內層函數提供一個運行環境
yield生成器
函數中誰用yeild,會返回一個生成器對象。
裝飾器:實現函數代碼重用
1、 本身是一個函數,用於裝飾其他函數;
2、 功能:增強被裝飾函數的功能;
裝飾器一般接受一個函數對象作為參數,以對其進行增強
遞歸:函數調用自身
遞歸需要邊界條件,遞歸前進段和遞歸返回段
函數的設計規範:
耦合性:
(1) 通過參數接收輸入,通過return產生輸出以及保證函數的獨立性
(2) 盡量減少使用去哪聚變量進行函數間通信
(3) 不在函數中修改可變類型的參數;
(4) 避免直接改變定義在另外一個模塊中的變量;
聚合性:
(1) 每個函數都應該有一個單一的、統一的目標;
(2) 每個函數的功能都應該相對簡單
練習1:將/etc/passwd文件中的每一行都分割為一個列表
練習2:將任意文件按用戶指定的分隔符把每一行都分割為一個列表
練習3:用折疊的方式(reduce)求階乘
練習4:返回/etc/passwd中包含了/bin/bash字符串的所有用戶名列表
1、記得關閉:f1.close()
2、記得關閉:f1.close()
3、
4、
或者使用filter:
Python(八)之函數