函式的巢狀及命名空間 作用域

2022-08-23 07:48:08 字數 1370 閱讀 2383

六.函式的巢狀

1.在函式內又呼叫了其他函式

def max2(x,y): #

兩個值比較

if x >y:

return

x

else

:

return

yres=(max2(1,3)

print

(res)

def max3(x,y,z): #

三個值比較

res1=max2(x,y)

res2=max2(res1,z)

return

res2

print(max3(11,99,2))

2.函式的巢狀定義:在函式內又定義了其他函式

deffunc1():

print('

from func1')

deffunc2():

print('

from func2')

print(func2) #

列印函式的記憶體位址

func2() #

呼叫函式

func1()

3.函式的層級巢狀

deff1():

print('

f1') #

第一層結果

deff2():

print('

f2') #

第二層結果

deff3():

print('

f3') #

第三層結果

f3() #

第三層呼叫

f2() #

第二層呼叫

f1() #

第一層呼叫

七.函式的命名空間與作用域

1.命名空間:namespaces:存放名字與值的繫結關係的地方

2.命名空間分三類:

2.1內建的命名空間:存放python直譯器自帶的名字,在直譯器啟動時就生效 直譯器關閉則失效

print

int 都是python內建的命名空間

2.2全域性命名空間:檔案級別的名字,在執行檔案的時候生效,在檔案結束或者檔案執行期間被刪除失效

x=1 #

全域性變數 什麼地方能引用

deff1():

deff2():

print

(x) f2()

f1()

2.3區域性命名空間:存放函式內定義的名字(函式的引數以及函式內的名字都存放與區域性命名空間)

函式呼叫時臨時生效,函式結束則失效

deff1():

x=2 #

區域性變數

print

(x)f1()

命名空間作用域

作用域 命名空間所能夠作用的範圍 內建命名空間 程式在任何階段任何位置均可以使用 全域性有效 全域性命名空間 程式在任何階段任何位置均可以使用 全域性有效 區域性命名空間 一般情況下只在各自的區域性命名空間有效 global 在區域性命名空間內更改全域性命名空間變數,使用關鍵字生命。在變數是不可變型...

函式物件 命名空間 作用域

定義函式的三種方式 1.空函式 可以快速構建專案框架,使專案架構清晰明了 def func pass 2.無參函式 def func print from func 3.有參函式 def func x,y,args,kwargs pass 命名關鍵字引數 在函式定義階段 寫在 與 可變長引數之間的形...

函式物件,函式巢狀,命名空間,作用域,閉包函式

一 函式物件 函式是第一類物件 值的記憶體位址可以像變數一樣去使用 def foo foo 函式的記憶體位址,可以當做一種變數值去使用 1 函式可以被引用 def foo print hello f foo print f f 2 可以當作引數傳遞 def foo print hello def b...