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']

其实变量就是内存的一个地址的指向名称,当该内存地址内的内容为可变时,局部变量就可修改,但内存指向任然不变;当内存地址指向的内容为不可变时,局部变量的赋值,就是在内存里重新开拓内存块存储值,但函数执行完毕,变量的内存指向将重新指向全局变量的内存地址。

 

posted @ 2018-12-25 11:00  louis-sun  阅读(3531)  评论(0编辑  收藏  举报