时间:2021-07-01 10:21:17 帮助过:56人阅读
count=5def Myfun(): count=10 print(count) Myfun() print(count)
如果说非要在函数内部修改全局变量的值的话,可以在函数内部使用关键字 global来修饰该变量,这样就是表示该操作是对于全局变量的操作,而不是生成一个与全局变量相同的局部变量。
print("======使用global之后的变量======") count=5def Myfun(): global count#声明与赋值不能一块进行 count=10 print(count) Myfun() print(count)
2.内嵌(内部)函数
简言之,内嵌函数就是在函数内部定义的函数
值得注意的是:内部函数的调用只能在其外部的函数调用,而在之外无法调用。也就是说,在谁的内部,谁才有权利使用。
print("======内部函数的使用======")def fun1(): print("fun1()正在被调用") def fun2(): print("fun2()正在被调用") fun2() fun1()
3.闭包
闭包就是内嵌函数调用其外部函数的参数。
这种函数在调用的时候需要格外注意。
def funX(x): def funY(y): return x*y return funY print(funX(5)(8))
4.闭包中的变量问题
下面这段代码执行起来就会报错。因为在内嵌函数的内部调用外部函数的参数,而参数x对于Fun2()这个函数来说是一个全局变量,由于屏蔽作用,造成函数出错。
def Fun1(): x=5 def Fun2(): x*=x return x return Fun2()#Fun1()
解决上述问题的办法有两个:
一是使用非栈的数据结构来解决问题
二是使用nonlocal关键字来解决
#一种解决办法就是使用非栈存储,使用序列等来存储def Fun1(): x=[5] def Fun2(): x[0]*=x[0] return x[0] return Fun2() print(Fun1(),"\n")#在一种解决办法就是使用nonlocal关键字def Fun3(): x=5 def Fun4(): nonlocal x x*=x return x return Fun4() print(Fun3())
关于函数中的变量问题得需要仔细琢磨琢磨,毕竟与之前学的有些差异。
以上就是Python零基础入门之七变量与内置函数的内容,更多相关内容请关注PHP中文网(www.gxlcms.com)!