You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中修改字典为何无需重新赋值?何时需执行赋值操作?

为什么无需赋值就能修改字典D?

这是因为Python里的字典属于可变对象,当你把可变对象作为参数传递给函数时,传递的是对象的引用,而非对象的拷贝。也就是说,main.py里的D和foo.py函数参数里的D指向的是同一个字典对象。

结合你的代码来看:

  1. 在main.py中创建空字典D = {}
  2. 调用foo.add_key(D)时,把这个字典的引用传给了函数
  3. 函数内部执行D['key'] = 'value',直接在原字典对象上添加了键值对
  4. 函数虽然返回了修改后的字典,但因为操作的是同一个对象,所以main.py里的D已经被修改,不需要再用D = foo.add_key(D)赋值

如果换成整数、字符串这类不可变对象,情况就不一样了——不可变对象无法被修改,函数里的操作会生成新的对象,这时候就需要赋值才能拿到新对象。比如:

# 不可变对象示例
def add_one(num):
    num += 1
    return num

n = 1
add_one(n)
print(n)  # 输出1,原对象未变化
n = add_one(n)
print(n)  # 输出2,赋值后拿到新对象

内容的提问来源于stack exchange,提问作者clueless

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 03:30:53