我正在学习python,并且有一个关于如何通过python函数保存字典值的问题。
import copy
def func():
b = {'1':'d'}
a = copy.deepcopy(b)
global a
a = {}
func()
print a
打印输出仍为{}
,如何使其成为{'1':'d'}
?
答案 0 :(得分:4)
你需要说你正在访问函数内的global
变量a
,就像这样
def func():
global a
b = {'1': 'd'}
a = copy.deepcopy(b)
但是,不喜欢做那样的事情。相反,返回副本,然后将其存储在调用位置,如此
import copy
a = {}
def func():
b = {'1': 'd'}
return copy.deepcopy(b)
a = func()
print a
答案 1 :(得分:1)
我将global a
移到了函数定义中。
#! /usr/bin/python
import copy
def func():
global a
b = {'1':'d'}
a = copy.deepcopy(b)
a = {}
func()
print a
答案 2 :(得分:1)
您正在定义' a'在两个不同的范围内,一个在"全球"范围,功能范围之一。您需要返回copy.deepcopy(b)并将其设置为外部定义的' a'。
的值。import copy
def func():
b = {'1':'d'}
return copy.deepcopy(b)
global a
a = func()
print a