python全局參數與局部參數


一:全局參數與局部參數的典型舉例

①:在函數外定義name並在函數內定義name

>>> name='louis'
>>> def fun():
    name='wedi'
    print(name)
>>> fun()
wedi
>>> print(name)
louis
>>> 

②:在函數外定義name並在函數內直接引用

>>> name='louis'
>>> def fun():
    print(name)
>>> fun()
louis
>>> print(name)
louis

由上第一個例子可知,函數雖然對name重新賦值,但並沒有覆蓋函數前已經定義了的name,故函數內的name為局部參數,由第二個例子可知全局參數可被函數直接引用。綜上可知,函數調用的過程為,先查詢局部內是否定義,如有則直接使用,否則向上一級查找。直至找到為止,且局部重新賦值后,該值只能在函數內使用,並不影響全局參數。

二:就要局部修改,同時全局也跟着變

>>> name='louis'
>>> def fun():
    global name
    name='wedi'
    print(name)
>>> fun()
wedi
>>> print(name)
wedi

由上可知,只需要加global關鍵字,name就是全局變量。同時需要注意的是,name='wedi',不可在global關鍵字前。

三:在函數內對全局可變變量追加與刪除

>>> name=['louis','james']
>>> def fun():
    name.append('barry')
    print(name)
>>> fun()
['louis', 'james', 'barry']
>>> print(name)
['louis', 'james', 'barry']

其實變量就是內存的一個地址的指向名稱,當該內存地址內的內容為可變時,局部變量就可修改,但內存指向任然不變;當內存地址指向的內容為不可變時,局部變量的賦值,就是在內存里重新開拓內存塊存儲值,但函數執行完畢,變量的內存指向將重新指向全局變量的內存地址。

 


免責聲明!

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



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