可變長度參數(shù)
站在實(shí)參的角度,實(shí)參是用來為形參賦值的,如果實(shí)參的個(gè)數(shù)不固定,那么必須要有形參能夠接受溢出的值
*與**在形參中的應(yīng)用
在形參中的*args和**args
? ? *args:將傳進(jìn)來多余的位置實(shí)參,集合成元組的形式
? ?? **kwargs:將傳進(jìn)來多余的關(guān)鍵字實(shí)參,集合成字典的形式
在實(shí)參中*,**的作用
*可變類型的位置實(shí)參用for循環(huán)打散成位置實(shí)參
**會將其后的字典類型實(shí)參打散成關(guān)鍵字實(shí)參
函數(shù)的嵌套
? ? 定義在函數(shù)內(nèi)函數(shù)的特點(diǎn)是,一般情況下只能在函數(shù)內(nèi)調(diào)用
名稱空間與作用域
三種名稱空間:
內(nèi)置名稱空間:python內(nèi)置的名字
周期:python解釋器啟動時(shí)開始? python解釋器結(jié)束后銷毀
全局名稱空間:用來存放頂級名字的名稱空間
周期:程序開始時(shí)存活,程序結(jié)束時(shí)則銷毀
局部名稱空間:定義在函數(shù)內(nèi)的名字
周期:函數(shù)調(diào)用時(shí)開始,結(jié)束時(shí)銷毀
重要結(jié)論:名稱空間的嵌套關(guān)系是在函數(shù)定義時(shí)就已經(jīng)確定死了,與函數(shù)的調(diào)用位置無關(guān)。
作用域:全局作用域:內(nèi)置名稱空間與全局名稱空間
局部作用域:局部名稱空間 ?? 特點(diǎn):臨時(shí)存活,局部有效
global? 可以將函數(shù)內(nèi)的變量名,變?yōu)槿肿兞棵?/p>
nonlocal 在函數(shù)的外層尋找變量名,如果找到了全局作用域還沒找到就會報(bào)錯(cuò)