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

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

 

转载于:https://www.cnblogs.com/louis181214/p/10172734.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值