python之全局变量和局部变量

python之全局变量和局部变量
1、在定义的函数内出现的变量是局部变量,在全体程序中使用的变量是全局变量。
区别:
局部变量是函数内部的占位符,在使用关键字def定义的过程中,局部变量仍不存在,只有我们在调用这个函数的过程中才会被产生出来,占据一定的内存空间,在函数被调用完毕后,该局部变量会被程序进行回收,消失掉。局部变量的名字可能和全局变量重名,但这是两个完全不同的变量,从其占据的内存区域,作用的范围等都是完全不同的。
联系:
1、使用保留字global 可以将局部变量升级为全局变量。比如定义如下的函数:

m = 10
def printcoff():
	global m
	m = 1000
	print(m)
printcoff()
print(m)

如果没有global m这个语句,那么在主程序中的m值是不会被printcoff函数修改的,但加上了这个语句,那么m在printcoff里被声明为全局变量,于是可以被修改数值了。

特殊情况:

如果在自定义函数中引用了一个组合数据类型,比如列表,字典。如果该组合数据类型没有在自定义函数内定义,那么该数据类型被视为全局变量,如果在函数内部定义的话,那么该数据类型是局部变量。
原因是:函数的参数传递有两种形式,一种是值传递,一种是引用传递(相当于C语言中的指针即地址传递),他传的是地址,对该地址的内容进行修改那就是对外部的实际数据进行修改,所以如果没有在函数内部定义该数据类型的话,那么修改的就是外部定义的数据,那么实际展现出的就是全局变量的效果。
2、使用规则:
基本数据类型,无论是否重名,局部变量与全局变量不同。
可以使用global保留字在函数内部声明为全局变量。
组合数据类型。

3、lambda函数。
是一种匿名函数,没有名字的函数。定义一种简单的,一行内表达的简单函数。
主要用作一些特定函数或方法的参数。
有一些固定的使用方式,一般情况下使用def形式。

<函数名> = lambda<参数>:<表达式>。
f = lambda x,y:x=y
f(2,3)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值