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