*動態位置參數
def chi(*food) 動態傳參:可以傳入任意的參數,以tuple元組類型接收
位置參數>動態參數>默認值參數 此種情況默認值參數永遠生效,要給默認參數賦值,需要使用關鍵字參數
**動態關鍵字參數
def chi(**food)
chi(good_food="hamburger",good_drink="cola",adfasdf="sdfkasdfj")
動態關鍵詞參數 **動態關鍵字參數 可以接受關鍵字賦值形式的任意參數,形參命名對實參沒有限制作用,以dic字典類型接收
參數位置: *args, 默認值, **kwargs
命名空間:
1 內置命名空間: python解釋內部運行時的變量函數
2 全局命名空間: 我們在py文件中直接聲明出來的變量,函數
3 局部命名空間: 在函數內部聲明的變量和函數
加載順序: 內置>全局>局部
取值順序: 局部>全局>內置 內部沒有的話就找外部
作用域命名空間
1 全局作用域: 全局命名空間+內置命名空間
2 局部作用域: 局部命名空間
globals( ) 獲取到全局作用域中的所有名字
locals( ) 查看當前作用域中的所有名字
函數嵌套: 注意沒有在def函數後縮進的即爲非define內容,要直接執行
global a 擴展其作用域,使a成爲全局變量,如果全局變量有a,則使將全部變量的值引入
nonlocal a 擴展其作用域,將局部作用域中離它最近的變量引入