时间: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)!