91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python作用域的示例分析

發布時間:2021-08-07 10:01:10 來源:億速云 閱讀:173 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“Python作用域的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Python作用域的示例分析”這篇文章吧。

作用域:顧名思義,作用的范圍。

如果你是自學者,而且已經進軍到函數這一部分了,那么就應當了解下Python的作用域。否則你可能會像我一樣,總是對一個變量名同時存在函數內和函數外且有不同值搞的暈頭轉向。

在這里就總結一下,在本人的知識范圍內所了解到的作用域是什么樣的,LEGB規則到底規定了什么。

全局范圍的產生(global):

我們創建一個xxx.py文件,就是一個模塊,這時一個作用域就產生了。這個范圍是整個模塊,稱作Global ,全局范圍。

例如:創建一個文件demo.py。

聲明一個變量,bd="百度"。

變量bd就是個全局變量。

bd="百度"

if True:
  print(bd)
#==============
def function_1():
  print(bd)
function_1()

bd在函數內和函數外都能被使用。

Python作用域的示例分析

本地范圍的產生(Local):

當函數被定義后,一個屬于這個函數的小天地就產生了。可以在內部定義變量,也可以在它的內部嵌套函數。這個范圍就是局部范圍。在局部范圍的變量只能局部范圍內使用。

def locals():
  x=100
  print("local_x = ",x+20)
locals()

輸出:local_x =  120

如果在全局范圍內打印x就會報錯:

def locals():
  x=100
  print("local_x = ",x+20
print(x)

提示名字錯誤:x沒有被定義(NameError: name 'x' is not defined)

所以局部變量x僅在函數內使用。在其他地方調用時錯誤的。

Python作用域的示例分析

嵌套范圍的產生(Enclosed ):

這個范圍在函數嵌套時產生,介于全局和局部范圍之間。

比如一個函數嵌套了另一個函數,這個函數的作用域就是嵌套的范圍,被嵌套的就是本地范圍,如果有更多層的嵌套,那就有多層的嵌套范圍。

x=20
def local_out():
  y=30
  def local_in():
    z=40
    print('本地變量z:',z)
  print('嵌套變量y:',y)
  local_in()
print("全局變量x:",x)
local_out()

輸出:

全局變量x: 20

嵌套變量y: 30

本地變量z: 40

Python作用域的示例分析

python的內建函數:(Built-in)內建函數是天生就有的,你在那個作用域都可以以調用。用的最多的莫過于print()關于內建函數你可以在python的documentation內找到。python的內建函數:(Built-in)內建函數是天生就有的,你在那個作用域都可以以調用。用的最多的莫過于print()關于內建函數你可以在python的documentation內找到。

LEGB規則:

LEGB是Local,Enclosed ,Global,Built-in首字母的縮寫聯合。

它們的范圍是有小到大是這樣排列的,Local----Enclosed----Global----Built-in,而且上層套下層:

2、python腳本運行時找名稱的順序:

1)從它本身所在的層級找名;

2)如果沒有就向外層找;

3)不會向內找,也不會從和它同級的層內找。

Python作用域的示例分析

3、如果在某個層內找到,就停止尋找,即使外面有同名的。

def max(s):
  m=min(s)
  return m

numList=[1,2,4,5,7,8,9]
maxNun=max(numList)
print('最大值=',maxNun)

輸出:最大值= 1

在全局范圍內,調用max()函數,因為有個自定義函數和內建的函數max()同名,所以它調用了,自定義的函數max(),就停止向外層查找。

Python作用域的示例分析

同一作用域內兩個名稱是獨立的,互不干擾。

比如兩個同一級別的函數內,可以定義同名的變量,或嵌套同名的函數。

a=3
def add_1():
  a=30
  print('add_1的 a =',a)

def add_2():
  a = 3000
  print('add_2的 a =', a)

add_1()
add_2()
print('全局變量的 a =', a)

輸出:

add_1的 a = 30

add_2的 a = 3000

全局變量的 a = 3 

Python作用域的示例分析

以上是“Python作用域的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

施秉县| 龙陵县| 凭祥市| 巴彦淖尔市| 玉龙| 高密市| 延寿县| 崇信县| 泗水县| 平遥县| 高尔夫| 阳原县| 富川| 留坝县| 兴山县| 招远市| 秦皇岛市| 江门市| 无极县| 南岸区| 交城县| 沾化县| 措勤县| 东至县| 秦安县| 保定市| 潍坊市| 越西县| 呼玛县| 灌云县| 高邮市| 义乌市| 宣化县| 铜川市| 平凉市| 重庆市| 南城县| 肇东市| 武邑县| 平安县| 蕲春县|