1、全局变量、局部变量
全局变量在调用的function中是不允许被直接修改的。
修改方法:在全局变量前加global 关键字
如:修改text这个全局变量,方法:global text="XXX"
对于在调用函数中修改局部变量的,但输出局部变量还是原值的原因:
是函数在栈中创建了一个与全局变量同名的局部变量,值作用于当前修改它的函数
2、内部嵌套函数
内部嵌套函数:函数里面套函数
内部函数的作用域只在母函数中有效,在母函数内、子函数外定义的变量,对于子函数来说相当于全局变量,所以无法直接修改子函数的“全局变量”,修改方法如下:
1)、使用容器类型的数据,对容器类型的数据进行修改
def fun11(): x=[6] def fun22(): x[0] *= x[0] return x[0] return fun22()
2)、加上nonlocal关键字
def fun111(): x=7 def fun222(): nonlocal x x *= x return x return fun222()