01 內(nèi)存管理
- python的參數(shù)傳遞,傳遞的是參數(shù)值而非參數(shù)地址。參數(shù)值被復(fù)制后傳遞進(jìn)函數(shù)。
- 對(duì)于數(shù)值類型的參數(shù)(即不可變類型,整型、浮點(diǎn)、復(fù)數(shù)等),在函數(shù)內(nèi)改變參數(shù)值,函數(shù)外面不受影響。
- 對(duì)于容器類型的參數(shù)(即可變類型,列表、字典、字符串等),在函數(shù)內(nèi)改變了容器里的內(nèi)容,在函數(shù)的外面也可以體現(xiàn)出來。
02 變量作用域
- 創(chuàng)建于函數(shù)外部,它是全局(Global)的,它在這個(gè)py文件內(nèi)部的任何地方可見。
- 創(chuàng)建于函數(shù)內(nèi)部,它是局部(Local)的,它只能在函數(shù)內(nèi)部才能訪問,在函數(shù)外部不可見。
- 全局變量和局部變量重名,函數(shù)內(nèi)會(huì)訪問到局部變量,函數(shù)外訪問到全局變量。
- 函數(shù)內(nèi)部能訪問全局變量,但不能修改!
gv1 = 1 # 全局變量
def test():
gv1 = 2
print('在函數(shù)內(nèi)部訪問全局變量:gv1 = %d' % gv1) # 訪問內(nèi)部局部變量 2
test()
print('在函數(shù)外部訪問全局變量:gv1 = %d' % gv1) # 外部全局變量仍然是 1
- 如果非要在函數(shù)內(nèi)部修改全局變量,需要在函數(shù)內(nèi)通過global關(guān)鍵字聲明
gv1 = 1
def test():
global gv1 # 通過global聲明,此時(shí)全局變量可以在函數(shù)內(nèi)部修改
print('在函數(shù)內(nèi)部訪問全局變量:gv1 = %d' % gv1) #1
gv1+=1
test()
print('在函數(shù)外部訪問全局變量:gv1 = %d' % gv1) #2
文章來源地址http://www.zghlxwxcb.cn/news/detail-834660.html
文章來源:http://www.zghlxwxcb.cn/news/detail-834660.html
到了這里,關(guān)于python 函數(shù)-06-變量&參數(shù)內(nèi)存管理及作用域的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!