关于python中全局变量和局部变量的一个问题

众所周知,全局变量和局部变量可以说是泾渭分明,如
a = 10
def test():
a = 20
print(a)
test() #将输出局部变量a
print(a) # 将输出全局变量a
#答案是: 20
10
函数内部的局部变量a,并不会影响全局变量a
但是假设为列表或字典呢?
my_list = [10]
def list_test():
my_list=[]
my_list.append(20)
print(‘函数的’,my_list)
list_test()
print(my_list)
答案为:函数的 [20]
[10]
仍然符合局部变量并不会影响全局变量
注意:假设为一个空的列表或字典
my_list = []
def list_test():
my_list.append(20)
print(‘函数的’,my_list)
list_test()
print(my_list)
答案:函数的 [20]
[20] 这里为何是20,而不是[]?
个人见解:函数内部无my_list这个列表,因此他将会调用全局变量my_list列表,然后把元素放在了列表中,改变的是全局变量,又或是因为是容器?
望大佬们积极解惑,不胜感激

猜你喜欢

转载自blog.csdn.net/weixin_44259638/article/details/104539565