1.什麼是legb?
l:local 函式內部作用域
e:enclosing 函式內部與內嵌函式之間
g:global 全域性作用域
b:build-in 內建作用域
2.legb是作什麼用的?
為什麼非要介紹這個呢?或者說它們的作用是什麼?
原因是因為我們的在學習python函式的時候,經常會遇到很多定義域的問題,全部變數,內部變數,內部嵌入的函式,等等,python是如何查詢的呢?以及python又是按照什麼順序來查詢的呢?這裡做乙個順序的說明
3.順序是什麼
跟名字一樣,p在函式裡面的查詢分為4種,稱之為legb,也正是按照這種順序來查詢的。
首先,是local,先查詢函式內部
然後,是enclosing,再查詢函式內部與嵌入函式之間(是指在函式內部再次定義乙個函式)
其次,是global,查詢全域性
最後,是build-in,內建作用域
4.舉例說明
ex1passline = 60
def func(val):
if val >= passline:
print('pass')
exaxakqgwglse:
print('failed')
func(89)
''''''''''''
pass
[finished in 0.2s]
''''''''''''
python函式首先查詢local,在區域性變數作用域裡並沒有passline的定義,然後發現函式內部並沒有內嵌函式,這時python開始查xaxakqgwg找global,在全域性裡查詢到passline的定義,被呼叫。
ex2def max(val1, val2):
return max(val1, val2)
print(max(90, 100))
'''''''''
100[finished in 0.1s]
'''''''''
max函式裡面直接呼叫另外乙個函式,呼叫的max()(注意兩個函式的大小寫不一樣),該函式並沒有被定義,但是卻屬於我們上述的第四種,屬於build-in函式,既是在python標準庫里的函式,內建的,可以直接呼叫的。最後一步才會查詢到這裡
Python 函式作用域
python中變數作用域分4種情況 x max 1,6 max為系統變數,它的作用域為python的所有模組 y 1 y為全域性變數,它的作用域為當前模組 defouter i 3 i的作用域為當前函式,包括巢狀函式 definner count 2 count為區域性變數,作用域只在當前函式有效函...
Python 函式的作用域
python中的作用域有4種 名稱介紹 llocal,區域性作用域,函式中定義的變數 eenclosing,巢狀的父級函式的區域性作用域,即包含此函式的上級函式的區域性作用域,但不是全域性的 bgloba,全域性變數,就是模組級別定義的變數 gbuilt in,系統固定模組裡面的變數,比如int,b...
Python函式詳解一(函式引數 變數作用域)
函式是python程式的重要組成部分。所謂函式就是實現某一特定功能的 段,可重複使用,提高了 的利用率。python除了可以直接使用內建函式,還支援自定義函式。使用def關鍵字,格式如下 def函式名 引數列表 函式體函式的返回值 函式的返回值用return語句返回,函式體內部的語句在執行時,一旦執...