搞不懂全局变量
def get_digits(n):if n>0:
temp.insert(0,n%10)
return get_digits(n//10)
temp=[]
get_digits(12345)
print(temp)
这里标红的temp不是全局变量吗?为啥下面打印出来的temp是经过函数加工的temp 本帖最后由 jackz007 于 2019-11-6 18:37 编辑
temp 是全局变量,在 Python 中有规定,全局变量在函数中只能读,不能写,意思是不能出现为全局变量赋值的操作,但是,可以利用对象的方法对对象进行编辑操作。在本例中,函数 get_digits() 正是通过列表的方法 insert(),对全局变量 temp 进行了编辑的操作,所以,最后从主函数中打印出来的列表 temp 才不是空的。 temp 全局变量在 get_digit 函数中被列表方法修改(insert()),所以全局变量能改变(只能调用其方法及属性,但不能对它进行赋值操作)
页:
[1]