python全局变量和局部变量

python 的全局变量和局部变量是我们在调用函数时,会很容易混淆的点。首先讲一下局部变量,通常,我们在函数内定义的变量即为局部变量(不加global 参数)。函数中的局部变量无法影响函数外的命名空间中的变量,即使他们有相同的变量名,也是不同的变量。我们在定义局部变量时,要注意不要与函数外的变量想混。但有些情况下,我们自己会以为是同一个变量,而犯错。如:
x = [1,2,3]
def sub(x):
    x = x.pop()
当我们运行函数,查看x的结果时:
sub(x)
print(x0
[1,2]
此时,函数中的x 与函数外的x不是同一个变量(形参与实参)。按道理讲,函数外的x在执行完函数后,应保持不变,但是,因为x指向一个列表,而在函数执行的过程中,执行了列表类的一个方法pop(),所以,x才会改变。若x是全局变量的概念,那么函数执行结果后,x应为x.pop()返回的值3.
def sub(a):
	global x
	x = a.pop()
sub(x)

得到结果:
3




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值