国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - 詳解Python函數作用域的LEGB順序

詳解Python函數作用域的LEGB順序

2020-08-23 11:55岑宇 Python

這篇文章主要為大家詳細介紹了Python函數作用域的LEGB順序的相關資料,感興趣的朋友可以參考一下

本文為大家介紹了Python函數作用域的查找順序,供大家參考,具體內容如下

1.什么是LEGB?
L:local 函數內部作用域
E:enclosing 函數內部與內嵌函數之間
G:global 全局作用域
B:build-in 內置作用域

2.LEGB是作什么用的?
為什么非要介紹這個呢?或者說它們的作用是什么?
原因是因為我們的在學習Python函數的時候,經常會遇到很多定義域的問題,全部變量,內部變量,內部嵌入的函數,等等,Python是如何查找的呢?以及Python又是按照什么順序來查找的呢?這里做一個順序的說明

3.順序是什么
跟名字一樣,Python在函數里面的查找分為4種,稱之為LEGB,也正是按照這種順序來查找的。

首先,是local,先查找函數內部
然后,是enclosing,再查找函數內部與嵌入函數之間(是指在函數內部再次定義一個函數)
其次,是global,查找全局
最后,是build-in,內置作用域

4.舉例說明
ex1

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
passline = 60
 
def func(val):
  if val >= passline:
    print('pass')
  else:
    print('failed')
 
func(89
 
''''''''''''
pass
[Finished in 0.2s]
''''''''''''

Python函數首先查找local,在局部變量作用域里并沒有passline的定義,然后發現函數內部并沒有內嵌函數,這時Python開始查找global,在全局里查找到passline的定義,被調用。

ex2

?
1
2
3
4
5
6
7
8
9
def Max(val1, val2):
  return max(val1, val2)
 
print(Max(90, 100))
 
'''''''''
100
[Finished in 0.1s]
'''''''''

Max函數里面直接調用另外一個函數,調用的max()(注意兩個函數的大小寫不一樣),該函數并沒有被定義,但是卻屬于我們上述的第四種,屬于build-in函數,既是在python標準庫里的函數,內置的,可以直接調用的。最后一步才會查找到這里

關于第二種,屬于內嵌函數,即使在函數里面再次定義一個函數,這時會首先查找local函數里面是否有定義,然后才會查找函數里面內嵌函數里面有沒有定義,這一種有專門的名詞,叫做閉包,閉包在之前一些文章中都有介紹,希望大家閱讀。

以上就是本文的全部內容,希望對大家的學習有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色婷婷国产精品免费网站 | 一区二区三区欧美 | 中文字幕成人 | 亚洲在线观看免费视频 | 久久艹综合 | 国产在线在线 | 欧美日韩视频在线第一区 | 欧美另类视频 | 午夜成人在线视频 | 欧美一区二区三区久久精品 | 日本一区二区免费在线播放 | 久久亚| 日韩成人小视频 | 国产淫片在线观看 | 激情久久久久 | 久久成人高清 | 久久精品成人 | 国产精品美女久久久久久久久久久 | a级毛片免费高清视频 | 日韩天堂| 国产成人在线一区二区 | 午夜电影网站 | 成人精品一区二区三区 | 欧美一区二区免费在线 | 91亚洲精品在线 | 日本久久影视 | 精品国产乱码久久久久久久软件 | 免费不卡视频 | 男女做爰猛烈叫床无遮挡 | 精品久久久久久久久久久久 | 久久久www成人免费无遮挡大片 | 一区二区三区在线播放 | 91亚洲国产 | 超级av | 依依成人综合网 | 亚洲国产精品无卡做爰天天 | 四虎永久在线观看 | 激情五月婷婷基地 | 操操操av| 最好的2019中文大全在线观看 | 成人在线一区二区三区 |