UnboundLocalError: local variable 'a' referenced before assignment
--------------------------------------------------------------------------
注: 显然是不可以修改
------->可变类型:
In [49]: a = [1,]
In [50]:
In [50]: def demo():
...: a.append(2)
...: print(a)
...:
In [51]: demo()
[1, 2]
In [52]: a
Out[52]: [1, 2]
当调用函数时,在执行函数时在函数内部修改了列表的值--同时外部打印时也发生了变化。
总结:
○ 如果在函数中修改全局变量,那么就需要使用global进行声明,否则出错
○ 在函数中 不使用global声明全局变量时不能修改全局变量的本质 是 不能修改全局变量的指向 , 即 不能将全局变量指向新的数据 。
○ 对于 不可变类型 的全局变量来说,因其 指向的数据不能修改 ,所以不使用global时 无法 修改全局变量。
○ 对于 可变类型 的全局变量来说,因其指 向的数据可以修改 ,所以不使用global时 也可修改 全局变量。
以上就是python中的基础点的详细内容,更多请关注Gxl网其它相关文章!