Python 替换函数中的对象引用 def修改(命令): alt_dict=a_dict.copy() alt_dict['s']=2 a_dict=alt_dict a_字典={} a_字典[f']=5 修改(字典) 印刷(字典)
预期的结果是,一个_字典现在也将包含键's'。我知道列表和字典是作为可变项通过引用传递的,但是有没有一种方法可以像我在上面尝试的那样更新函数中的引用?。。还是有更好的办法 为了澄清,我确实需要制作一个副本,因为如果发生异常,我在代码中的实际函数中所做的更改可能会被放弃。您可以:Python 替换函数中的对象引用 def修改(命令): alt_dict=a_dict.copy() alt_dict['s']=2 a_dict=alt_dict a_字典={} a_字典[f']=5 修改(字典) 印刷(字典),python,Python,预期的结果是,一个_字典现在也将包含键's'。我知道列表和字典是作为可变项通过引用传递的,但是有没有一种方法可以像我在上面尝试的那样更新函数中的引用?。。还是有更好的办法 为了澄清,我确实需要制作一个副本,因为如果发生异常,我在代码中的实际函数中所做的更改可能会被放弃。您可以: def modify(a_dict): alt_dict = a_dict.copy() alt_dict['s'] = 2 # do lots of stuff # make sure
def modify(a_dict):
alt_dict = a_dict.copy()
alt_dict['s'] = 2
# do lots of stuff
# make sure all changes are "backported"
a_dict.update(alt_dict)
你可以做:
def modify(a_dict):
alt_dict = a_dict.copy()
alt_dict['s'] = 2
# do lots of stuff
# make sure all changes are "backported"
a_dict.update(alt_dict)
将新对象指定给局部变量对您没有帮助。但是,由于字典是可变的,您可以在给定新数据的情况下清除并更新原始字典:
def modify(a_dict):
alt_dict = a_dict.copy()
alt_dict['s'] = 2
a_dict.clear()
a_dict.update(alt_dict)
将新对象指定给局部变量对您没有帮助。但是,由于字典是可变的,您可以在给定新数据的情况下清除并更新原始字典:
def modify(a_dict):
alt_dict = a_dict.copy()
alt_dict['s'] = 2
a_dict.clear()
a_dict.update(alt_dict)
退回修改过的副本怎么样
def modify(a_dict):
alt_dict = a_dict.copy()
alt_dict['s'] = 2
return alt_dict
a_dictionary = {}
a_dictionary['f'] = 5
a_dictionary = modify(a_dictionary)
print(a_dictionary)
退回修改过的副本怎么样
def modify(a_dict):
alt_dict = a_dict.copy()
alt_dict['s'] = 2
return alt_dict
a_dictionary = {}
a_dictionary['f'] = 5
a_dictionary = modify(a_dictionary)
print(a_dictionary)
不幸的是,我在实际代码中返回了其他内容,这就是为什么我需要通过引用来完成它,但这是一个好方法suggestion@JackAvantePython中的函数可以返回任意数量的对象。不幸的是,我在实际代码中返回了其他东西,这就是为什么我需要通过引用来实现它,但这是个好主意suggestion@JackAvantePython中的函数可以返回任意数量的对象。