日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python局部变量想作用于全局_python 局部和全局作用域

發布時間:2025/3/21 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python局部变量想作用于全局_python 局部和全局作用域 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在函數內賦值的變量,處于該函數的“局部作用域”。在所有函數之外賦值的變量,屬于“全局作用域”。處于局部作用域的變量,被稱為“局部變量”。處于全局作用域的變量,被稱為“全局變量”。一個變量必是其中一種,不能既是局部的又是全局的。

可以將“作用域” 看成是變量的容器。當作用域被銷毀時,所有保存在該作用域內的變量的值就被丟棄了。只有一個全局作用域, 它是在程序開始時創建的。如果程序終止, 全局作用域就被銷毀,它的所有變量就被丟棄了。

一個函數被調用時, 就創建了一個局部作用域。在這個函數內賦值的所有變量,存在于該局部作用域內。該函數返回時,這個局部作用域就被銷毀了, 這些變量就丟失了。

結論:全局作用域中的代碼不能使用任何局部變量;但是,局部作用域可以訪問全局變量;一個函數的局部作用域中的代碼,不能使用其他局部作用域中的變量;在不同的作用域中,你可以用相同的名字命名不同的變量。也就是說,可以有一個名為 color

的局部變量,和一個名為 color 的全局變量。

def cred():

color='red'

print(color)

cn()

def cgreen():

color='green'

print(color)

cred()

print(color)

def cn():

print(color)

color='blue'

cgreen()

print(color)

green

red

blue

green

blue

當函數想要改變全局變量時,需要使用 global。

def setRed():

global color

color='red'

def setGreen():

global color

color='green'

color='blue'

print(color)

setRed()

print(color)

setGreen()

print(color)

blue

red

green

區分一個變量是處于局部作用域還是全局作用域:

1.如果變量在全局作用域中使用(即在所有函數之外),它就總是全局變量。

2.如果在一個函數中,有針對該變量的 global 語句,它就是全局變量。

3.如果該變量用于函數中的賦值語句,它就是局部變量。

4.如果該變量沒有用在賦值語句中,它就是全局變量。

def setRed():

global color

color='red'

def setGreen():

global color

color='green'

def cn():

print(color)

color='blue'

cn()

setRed()

cn()

setGreen()

cn()

blue

red

green

在一個函數中, 一個變量要么總是全局變量, 要么總是局部變量。函數中的代碼沒有辦法先使用名為 color 的局部變量, 稍后又在同一個函數中使用全局 color 變量。如果想在一個函數中修改全局變量中存儲的值,就必須對該變量使用 global 語句。

在一個函數中, 如果試圖在局部變量賦值之前就使用它,Python 看到 setGreen 函數中有針對 color 的賦值語句,因此認為 color 變量是局部變量。但是因為 print(color)的執行在 color 賦值之前,局部變量 color 并不存在。 Python 不會退回到使用

全局 color 變量。

def setRed():

print(color) ## name 'color' is used prior to global declaration

global color

color='red'

color='blue'

setRed()

def setGreen():

print(color) ## UnboundLocalError: local variable 'color' referenced before assignment

color='green'

color='blue'

setGreen()

總結

以上是生活随笔為你收集整理的python局部变量想作用于全局_python 局部和全局作用域的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。