Python中的全域性變數與區域性變數

2021-10-02 01:39:48 字數 1669 閱讀 9711

from math import *

from numpy import *

# 巢狀函式,fun2 中有 fun3, python3中才引用了nonlocal解決多層巢狀的函式變數引用問題,nonlocal意為函式外層的變數,而非全域性變數

def fun2(

): num2 = 3

def fun3(

): nonlocal num2

num2 *= 2

print(

"num2=", num2)

return fun3(

)fun2(

)# 巢狀函式,fun2 中有 fun3

def fun2(

): num2 = 3

def fun3(num2):

num2 *= 2

return num2

#end func

return fun3(num2)

#end func

num2 = fun2(

)print(

"num2=", num2)

# 嘗試訪問區域性變數y,超出y的作用域,發生搜尋錯誤

def fun(x):

y=2print(

"乘法的執行結果:",x*y)

num1=1

print(

"初始num1=",num1)

#fun(num1)

#print("y的值是:",y)

# 修改全域性變數的方法1

def fun(num1):

mul = 2

num1 = num1 * mul

print(

"函式內修改後num1=",num1)

return num1

num1=1

print(

"初始num1=",num1)

num1 = fun(num1)

print(

"執行完函式後num1=",num1)

# 修改全域性變數的方法2

def fun(

): global num1

mul = 2

num1 = num1 * mul

print(

"函式內修改後num1=",num1)

num1=1

print(

"初始num1=",num1)

fun(

)print(

"執行完函式後num1=",num1)

# 對於global的定義,必須在函式最前

a=true

def func(

): global a

if a:

print(

"123"

) a=false

print(a)

func(

)print(a)

# 對於global的定義,必須在函式最前,否則就會出問題

a = true

def func(

): if a:

print(

"123"

) global a

a = false

print(a)

func(

)print(a)

Python中全域性變數與區域性變數

1.定義 區域性變數 在函式中定義的變數一般只能在該函式內部使用,這些只能在程式的特定部分使用 全域性變數 在乙個檔案頂部定義的變數,可以供該檔案中任意函式呼叫 全域性變數與區域性變數兩者的本質區別就是在於作用域。全域性變數是在整個py檔案中宣告,全域性範圍內都可以訪問。區域性變數是在某個函式中宣告...

python中全域性變數與區域性變數

標籤 python 比如 a 1 def f b 2其中a就是全域性變數,而b是區域性變數。區域性變數只在函式體內部有效,出了函式體,外面是訪問不到的,而全域性變數則對下面的 都有效。全域性變數可以直接在函式體內容部使用的,你可以直接訪問,但是注意的是,如果對於不可變型別的資料,如果在函式裡面進行了...

區域性與全域性變數

區域性變數和全域性變數 一.區域性變數 1 在乙個函式內部定義的變數,它只在本函式範圍內有效,也就是說只有在本函式內才能使用它們,在此函式以外是不能使用這些變數的。include using namespace std float add float x,float y intmain 2 形參屬於...