新聞中心
創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
python的變量作用域?針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
變量作用域:
一般在函數(shù)體外定義的變量成為全局變量,在函數(shù)內(nèi)部定義的變量稱為局部變量。
全局變量所有作用域都可讀,局部變量只能在本函數(shù)可讀
函數(shù)在讀取變量時,優(yōu)先讀取函數(shù)本身自有的局部變量,再去讀全局變量
全局變量
讀,均可讀
賦值,global
字典,列表可修改
全局變量全大寫
例如
name = 'Tim' #全局變量 def f1(): age = 18 #局部變量 print(age,name) def f2(): age=19 #局部變量 print(age,name) f1() f2() >>> 18 Tim 19 Tim
在函數(shù)內(nèi)部也可以定義全局變量:
name = 'Tim' #全局變量 def f1(): age = 18 #局部變量 global name #定義全局變量 name = 'Eric' print(age,name) f1() print(name)
全局變量默認(rèn)可讀,如果需要改變?nèi)肿兞康闹?,需要在函?shù)內(nèi)部使用global定義
特殊:列表,字典,可修改,但不能重新賦值,如果需要重新賦值,需要在函數(shù)內(nèi)部使用global定義全局變量
NAME = ['Tim','mike'] #全局變量 NAME1 = ['Eric','Jeson'] #全局變量 NAME3 = ['Tom','jane'] #全局變量 def f1(): NAME.append('Eric') #列表的append方法可改變外部全局變量的值 print('函數(shù)內(nèi)NAME: %s'%NAME) NAME1 = '123' #重新賦值不可改變外部全局變量的值 print('函數(shù)內(nèi)NAME1: %s'%NAME1) global NAME3 #如果需要重新給列表賦值,需要使用global定義全局變量 NAME3 = '123' print('函數(shù)內(nèi)NAME3: %s'%NAME3) f1() print('函數(shù)外NAME: %s'%NAME) print('函數(shù)外NAME1: %s'%NAME1) print('函數(shù)外NAME3: %s'%NAME3) >>>
函數(shù)內(nèi)NAME: ['Tim', 'mike', 'Eric']
函數(shù)內(nèi)NAME1: 123
函數(shù)內(nèi)NAME3: 123
函數(shù)外NAME: ['Tim', 'mike', 'Eric']
函數(shù)外NAME1: ['Eric', 'Jeson']
函數(shù)外NAME3: 123
關(guān)于python的變量作用域問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道了解更多相關(guān)知識。
標(biāo)題名稱:python的變量作用域-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://fisionsoft.com.cn/article/deddsi.html