成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

了解Python作用域

作用域是指變量的有效范圍。對于自學(xué)者來說,如果已經(jīng)進(jìn)入了函數(shù)這一部分,那么就應(yīng)該了解Python的作用域。否則,你可能會像我一樣,總是對一個變量名在函數(shù)內(nèi)外同時存在且具有不同的值感到困惑。在這篇文章中

作用域是指變量的有效范圍。對于自學(xué)者來說,如果已經(jīng)進(jìn)入了函數(shù)這一部分,那么就應(yīng)該了解Python的作用域。否則,你可能會像我一樣,總是對一個變量名在函數(shù)內(nèi)外同時存在且具有不同的值感到困惑。在這篇文章中,我將總結(jié)我所了解到的作用域以及LEGB規(guī)則。

1. 全局作用域(Global)

當(dāng)我們創(chuàng)建一個文件時,就形成了一個模塊,這時候就產(chǎn)生了一個作用域。這個范圍是整個模塊,被稱為全局作用域。例如,在一個名為的文件中聲明一個變量bd"百度",那么變量bd就是一個全局變量。

```python

bd "百度"

if True:

print(bd) 輸出:百度

def function_1():

print(bd)

function_1()

```

在這個例子中,變量bd可以在函數(shù)內(nèi)和函數(shù)外被使用。

2. 局部作用域(Local)

當(dāng)函數(shù)被定義后,它就擁有了一個屬于自己的小天地,即局部作用域。在這個范圍內(nèi),可以定義變量,也可以在內(nèi)部嵌套函數(shù)。但是,局部作用域中的變量只能在局部范圍內(nèi)使用。

```python

def locals():

x 100

print("local_x ", x)

locals()

```

輸出結(jié)果:local_x 100

如果在全局范圍內(nèi)打印x,就會報(bào)錯:

```python

def locals():

x 100

print("local_x ", x)

print(x) 錯誤!NameError: name 'x' is not defined

locals()

```

因此,局部變量x只能在函數(shù)內(nèi)部使用,在其他地方調(diào)用時會出錯。

3. 嵌套作用域(Enclosed)

當(dāng)函數(shù)嵌套時,就會產(chǎn)生嵌套作用域,介于全局作用域和局部作用域之間。比如,一個函數(shù)嵌套了另一個函數(shù),那么被嵌套的函數(shù)就是內(nèi)部作用域,而嵌套函數(shù)的作用域就是嵌套范圍的作用域。如果有更多層的嵌套,就會有多個嵌套作用域。

```python

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()

```

輸出結(jié)果:

全局變量x: 20

嵌套變量y: 30

本地變量z: 40

4. Python的內(nèi)建函數(shù)(Built-in)

內(nèi)建函數(shù)是Python中天生就有的函數(shù),無論在哪個作用域都可以直接調(diào)用。其中,最常用的莫過于print()函數(shù)。關(guān)于內(nèi)建函數(shù)的詳細(xì)信息,你可以在Python的文檔中找到。

通過理解Python的作用域,可以更好地掌握變量的使用范圍和生命周期,從而提高代碼的可讀性和可維護(hù)性。希望這篇文章對你有所幫助,讓你更好地理解Python作用域的概念。

標(biāo)簽: