我对在 python 中使用 if setdefault() 的全局变量的行为有点困惑:
请找到有关如何使用 setdefault 引用/解决此问题的示例代码,有人可以帮我澄清这里发生了什么吗?
解析变量的主文件:
#main
from test import *
fill_func()
print my_list
print my_dict
为变量赋值的测试文件:
#test
my_list = []
my_dict = {}
def fill_func():
my_list = [1,2,3]
print my_list
my_dict.setdefault(0,[]).append('zero')
print my_dict
输出 :
[1, 2, 3]
{0: ['zero']}
[]
{0: ['zero']}
我无法理解为什么从 main.py 调用时 list(my_list) 变量显示为空,而 my_dict 显示数据正常?
任何帮助表示赞赏。蒂亚!
#样本测试文件 2
#test
my_list = []
my_dict = {}
def fill_func():
def fill_list():
global my_list
my_list = [1,2,3]
print my_list
my_dict.setdefault(0,[]).append('zero')
print my_dict
fill_list()
输出:
{0: ['zero']}
[1, 2, 3]
[]
{0: ['zero']}
有人可以对第二个测试文件有所了解吗,请耐心等待,尝试了解基础知识:)
蒂亚!