1. 程式人生 > >函式 進階

函式 進階

#函式def 進階
def f(a,*args,b=2,**kwargs): #動態位置引數(萬能傳參)tuple,動態關鍵字引數dict
print(a,b,args,kwargs) #關鍵字引數用賦值= *args **kwargs 可變
f(1,23,444,'黑',c=4,d='jay',e='周杰倫')
#位置引數>動態位置>預設>動態關鍵字引數


# 命名(名稱)空間
python內建多種自帶函式 但run程式碼開始時,先遍歷所有內建函式,碰到檔案呼叫的就執行,最後執行檔案自定義的函式
全域性 名稱空間 (全域性作用域 python內建+全域性)
區域性 名稱空間 (區域性作用域 函式程式碼塊內部)
a=10
def func():
b=3
print()
func()
print(globals()) #檢視全域性作用域裡的變數和函式名
print(locals()) #檢視區域性作用於裡的變數和函式名
載入 python內建>>>全域性>>>函式體區域性
查詢(取值) 函式體區域性 >>>全域性>>>內建

global 可變資料型別在函式中可直接操作 不可變資料型別才需要global
nonlocal 改變最近的父級變數 變數不會被修改

nonlocal 改變最近的父級變數, 如果上級沒有能夠改變的就繼續向上走,直到最外層函式就停止了.
函式: 將一個需求封裝後呼叫,優點:除去重複程式碼.
函式的註釋:
def f():
  '''
  '''
  return
print( )
函式巢狀(非常重要)
    避免出現環形呼叫