1. 程式人生 > >學海無涯苦作舟之python

學海無涯苦作舟之python

動態位置引數以及動態關鍵字引數:

位置  關鍵字 動態位置  動態關鍵字
def
func(a,*args,b,**kwargs): print(a,b,args,kwargs) func(1,2,3,4,bb=1,cc=3,)

 函式:

 

        動態:

            動態位置引數  *args

            動態關鍵字引數 **kwargs

        位置 > 動態位置引數 > 預設(關鍵字)引數 > 動態關鍵字引數

 

函式的巢狀:

 

def f():
#     a = 10
#     print(a)
#     def f1():
#         b = 20
#         print(b)
#     f1()
# f()

 

區域性空間:

 

def func():  # 函式裡的是區域性空間
#     b = 5
#     print(b)

#print()     #內建的就是python本身自帶的東西
# input()     #內建python本身自帶的東西

print(locals())  # 檢視區域性作用域中的變數和內容
print(globals()) # 檢視全域性作用域中的變數和內容

 

名稱空間:

 

2. 名稱空間:

    區域性名稱空間
    全域性名稱空間
    內建名稱空間


    載入順序:

        內建 > 全域性 > 區域性

    取值順序:

        區域性 > 全域性  > 內建

    作用域:

        全域性作用域:

            內建 + 全域性

        區域性作用域:

            函式區域性

 

global與nonlocal:

 

global:
可變資料型別在函式中可以直接操作,不可變資料型別才需要使用global
nonlocal:
nonlocal 改變最近的父級變數, 如果上級沒有能夠改變的就繼續向上走,直到最外層函式就停止了.

函式: 將一個需求封裝後呼叫,優點:除去重複程式碼.