关于python作用域的问题(未完待续)
参考链接如下:
https://www.cnblogs.com/fireporsche/p/7813961.html
https://blog.csdn.net/Keep_Trying_Go/article/details/121860673
1.在函数内定义的局部变量只在该函数内可见,当函数运行结束后,在其内部定义的所有局部变量将被自动删除而不可访问。在函数内部使用global定义的全局变量当函数结束以后任然存在并且可以访问。
2.如果在函数内部修改一个定义在函数外的变量值,必须使用global明确声明,否则会自动创建新的局部变量。在函数内部通过global关键字类声明或定义全局变量,分为两种情况:
方式一的理解:
(1)一个变量已在函数外定义,如果在函数内需要修改这个变量的值,并将修改的结果反映到函数之外,可以在函数内用关键字global明确声明要使用已定义的同名全局变量。
(2)在函数内部直接使用global关键字将一个变量声明为全局变量,如果在函数外没有定义该全局变量,在调用这个函数之后,会自动创建新的全局变量。
方式二的理解:
(1)在函数内如果只引用某个变量的值而没有为其赋新值,该变量为(隐式的)全局变量;
(2)如果在函数内某条代码有为变量赋值的操作,该变量就被认为是(隐式的)局部变量,除非在函数内赋值操作 之前显示地用关键字global进行声明。
例如:局部变量和全局变量
创建一个和原数组相同的数组的问题:
例如原数组为[0,1,2,3,4]
现在创建一个和它一样的数组:
n = 5
arr = list(range(5))
这样返回的arr= [0,1,2,3,4]