Python--變量作用域


變量作用域:
 一般在函數體外定義的變量成為全局變量,在函數內部定義的變量稱為局部變量。
 全局變量所有作用域都可讀,局部變量只能在本函數可讀
 函數在讀取變量時,優先讀取函數本身自有的局部變量,再去讀全局變量

全局變量
 讀,均可讀
 賦值,global
 字典,列表可修改
 全局變量全大寫

  例:

name = 'Tim' #全局變量

def f1():
    age = 18 #局部變量
    print(age,name)

def f2():
    age=19 #局部變量
    print(age,name)

f1()
f2()
>>>
18 Tim
19 Tim

 

  在函數內部也可以定義全局變量:

name = 'Tim' #全局變量

def f1():
    age = 18 #局部變量
    global name #定義全局變量
    name = 'Eric'
    print(age,name)
f1()
print(name)

全局變量默認可讀,如果需要改變全局變量的值,需要在函數內部使用global定義

 

特殊:列表,字典,可修改,但不能重新賦值,如果需要重新賦值,需要在函數內部使用global定義全局變量

  

NAME = ['Tim','mike'] #全局變量
NAME1 = ['Eric','Jeson'] #全局變量
NAME3 = ['Tom','jane'] #全局變量

def f1():
    NAME.append('Eric') #列表的append方法可改變外部全局變量的值
    print('函數內NAME: %s'%NAME)
    NAME1 = '123' #重新賦值不可改變外部全局變量的值
    print('函數內NAME1: %s'%NAME1)
    global NAME3 #如果需要重新給列表賦值,需要使用global定義全局變量
    NAME3 = '123'
    print('函數內NAME3: %s'%NAME3)
f1()
print('函數外NAME: %s'%NAME)
print('函數外NAME1: %s'%NAME1)
print('函數外NAME3: %s'%NAME3)
>>>
函數內NAME: ['Tim', 'mike', 'Eric']
函數內NAME1: 123
函數內NAME3: 123
函數外NAME: ['Tim', 'mike', 'Eric']
函數外NAME1: ['Eric', 'Jeson']
函數外NAME3: 123

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM