形參角度:
萬能引數:
動態接收位置引數:*args
**動態接收關鍵字引數:**kwargs **
*的魔性用法:
函式定義時 ,*代表聚合。他將所有的位置引數 聚合成乙個元組,賦值給了args;
函式定義時: **將所有的關鍵字引數聚合成乙個字典中,將這個字典賦給了 kwargs;
*和 **在函式的呼叫時 *代表打散
僅限關鍵字引數:
# def func(a,b,*args,***='男',c,**kwargs):
# print(a,b)
# func(1,2,3,4,***='女',c='僅限關鍵字引數')
形參的最終順序:
所有形參的順序為:**位置引數, *args, 預設引數,僅限關鍵字引數, ****kwargs。
命名空間:
python分為三個空間:
內建命名空間、(builtings.py檔案)
全域性命名空間、(當前py檔案)
區域性命名空間 (函式執行時才開闢空間)
全域性命名空間 區域性命名空間(臨時命名空間)
內建命名空間:python 原始碼給提供的一些內建函式 print input
區域性命名空間:存放的是函式內部的變數與值的對應關係
載入順序,
內建命名空間-------》全域性命名空間-------》區域性命名空間 (執行函式時)
取值順序:(就近原則) 單向不可逆 legb
(從區域性找變數)區域性命名空間 ----->全域性命名空間----->內建命名空間
區域性作用域 不能 改變 全域性作用域的 全域性變數,當python直譯器讀取到區域性作用域時發現了對乙個變數進行自改的操作,直譯器會認為你在區域性已經定義過這個區域性變數了,他就從區域性作用域找這個區域性變數,報錯了
作用域:兩個作用域:
全域性作用域:內建命名空間與全域性命名空間,不能獲取區域性作用域中的變數
區域性作用域:區域性命名空間 ,可以從全域性作用域中獲取變數,
legb ==就近原則
函式的巢狀(高階函式)
內建函式:
# glbals() 返回的是字典:字典裡面的鍵值對:全域性作用域的所有內容。
# locals() 返回的是字典:字典裡面的鍵值對:當前作用域的所有的內容。
總結:1、引數 :萬能引數 僅限關鍵字引數 *的魔性用法(聚合 打散),引數的順序
2、命名空間 作用域 取值順序 載入順序
3、glbals() locals()
4、高階函式
# 函式以功能(完成一件事)為導向,登入 註冊,
# 乙個函式就是乙個功能,乙個函式只能寫乙個功能
# 何時需要 何時呼叫,隨調隨用
# ****函式的優點:
# 1 減少**的重複;
# 2 增強**可讀性。
結構:def 關鍵字,定義函式
meet 函式名,與變數名設定相同,具有可描述性
函式體 函式體要縮排,函式中盡量不要出現print
# 函式什麼時候執行?
# 當函式遇到 ****** 函式名()***** 函式才會執行
# meet()遇到幾次就執行幾次
# return 總結:
1、在函式中 終止函式
2、return 可以給函式的執行者返回值:
1、單個值 單個值
2、多個值 元組(多個值,多個值) ('函式值', 123, [22, 22])
# 實參角度:
1、位置引數。:從左至右一一對應
2、關鍵字引數。:一一對應,不用從左至右
3、混合引數。:位置引數一定要在關鍵字引數前邊
# 形參角度:
# 1、位置引數。:從左至右一一對應
# 2、預設值引數。 設定的意義:普遍經常使用的
# 3、僅限關鍵字引數
# 4、萬能引數
python是高階動態程式語言 Python語言
python是一門跨平台 開源 免費的解釋型高階動態程式語言。python支援命令式程式設計 how to do 函式式程式設計 what to do 完全支援物件導向程式設計,擁有大量擴充套件庫。膠水語言 可以把多種不同語言編寫的程式融合到一起實現無縫拼接,更好地發揮不同語言和工具的優勢,滿足不同...
Python高階 函式高階
閉包 closure 常規函式中可以在函式的引數中新增引數的預設值來簡化函式的操作,偏函式也可以做到這一點,而且會更加的方便管理函式的操作。通過內建模組functools的partial進行定義和處理 語法結構 新函式名稱 functools.partial 函式名稱,預設賦值引數 例如 全域性函式...
python 函式 高階函式
filter 函式是 python 內建的另乙個有用的高階函式,filter 函式接收乙個函式 f 和乙個list,這個函式 f 的作用是對每個元素進行判斷,返回 true或 false,filter 根據判斷結果自動過濾掉不符合條件的元素,返回由符合條件元素組成的新list。例如判斷奇偶數 def...