局部變量
定義
- 局部變量是在函數(shù)內(nèi)部定義的變量,只能在函數(shù)內(nèi)部使用
- 函數(shù)執(zhí)行結(jié)束后,函數(shù)內(nèi)部的局部變量會(huì)被系統(tǒng)回收
- 不同的函數(shù),可以定義相同名稱的局部變量,相互之間沒(méi)有任何關(guān)聯(lián)
作用
- 在函數(shù)內(nèi)部使用,臨時(shí) **保存 **函數(shù)內(nèi)部使用所需要的數(shù)據(jù)
示例
def test1():
name="張三"
print("我的名稱叫:%s" %name)
name="李四"
print("我的名稱叫:%s" %name)
#定義同樣的 name變量, 與上一個(gè)函數(shù)中的name 沒(méi)有任何關(guān)系
def test2():
name="zhangsan"
print("我的名稱叫:%s" %name)
test1()
test2()
輸出結(jié)果
局部變量的生命周期
- 生命周期指的是:變量從** 創(chuàng)建** 到 被 **系統(tǒng)回收 **的過(guò)程
- 局部變量在函數(shù)執(zhí)行時(shí)才會(huì)被創(chuàng)建
- 函數(shù)執(zhí)行完成后,局部變量被系統(tǒng)回收
- 局部變量在生命周期內(nèi),可以用來(lái)存儲(chǔ)函數(shù)內(nèi)部臨時(shí)使用的數(shù)據(jù)
全局變量
定義
- 全局變量是在 函數(shù)外部定義的變量 ,所有函數(shù)內(nèi)部都可以使用這個(gè)變量
- 函數(shù)執(zhí)行時(shí),首選查找 函數(shù)內(nèi)部 是否存在指定名稱的 局部變量 ,如果有,直接使用;如果沒(méi)有,查找 函數(shù)外部 是否存在 指定名稱的 全局變量 ,如果有,直接使用;如果沒(méi)有 就會(huì)報(bào)錯(cuò)
作用
-
**全局變量 **是定義在函數(shù)變量,所有的函數(shù) 內(nèi)部 都可以使用這個(gè)變量
-
在函數(shù)內(nèi)部,可以通過(guò)全局變量的引用獲取對(duì)應(yīng)的數(shù)據(jù)
-
在函數(shù)內(nèi)部,不允許直接修改** 全局變量** 的引用(即: 使用賦值語(yǔ)句修改全局變量的值 )
-
如果需要修改全局變量,需要使用global 進(jìn)行聲明
-
為了保證 **所有的函數(shù) **都能使用到全局變量,應(yīng)該將全局變量 **定義在所有的函數(shù)上方
**
示例
#定義全局變量
name="張三"
def test1():
#使用全局變量
print("我的名稱叫:%s" %name)
def test2():
# 使用局部變量,此時(shí)并不會(huì)修改全局變量
name="李四"
print("我的名稱叫:%s" %name)
def test3():
#使用全局變量,測(cè)試全部變量名稱是否被修改
print("我的名稱叫:%s" %name)
def test4():
#修改全局變量
global name
name="zhangsan"
print("我的名稱叫:%s" %name)
def test5():
#查看全局變量的名稱是否被修改成功
print("我的名稱叫:%s" %name)
test1()
test2()
test3()
test4()
test5()
輸出結(jié)果
全局變量的命名
- 在開(kāi)發(fā)時(shí),為了避免局部變量和全局變量出現(xiàn)混淆,在定義全局變量時(shí)應(yīng)該增加 g_ 或者 gl_ 的前綴
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4331瀏覽量
62622 -
局部變量
+關(guān)注
關(guān)注
0文章
14瀏覽量
9048 -
系統(tǒng)
+關(guān)注
關(guān)注
1文章
1017瀏覽量
21347
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論