如何避免Python自定义addToInventory函数返回None值?
问题分析与解决思路
嘿,我一眼就看到问题出在哪啦!你的函数addToInventory确实在尝试修改传入的inventory字典,但Python里的函数如果没有显式的return语句,默认会返回None——这就是为什么你执行inv = addToInventory(...)后,inv变成了None的原因。
给你两个核心思路,选哪个都可以:
思路一:利用字典的可变性直接修改
字典是可变对象,你在函数内部对inventory做的修改会直接作用到外部的原字典上。所以你完全不需要把函数的返回值赋值给inv,直接调用函数就行:addToInventory(inv, dragonLoot)这样调用后,原来的
inv字典已经被更新了,不需要再重新赋值。思路二:让函数返回修改后的字典
如果你还是想保留inv = addToInventory(...)的写法,那就在函数的末尾加上一条return语句,把修改后的inventory返回出去。这样赋值的时候,inv就会拿到更新后的字典,而不是None。
另外提个小细节:你现在的循环只处理了addedItems中不在inventory里的元素,那些已经存在的元素(比如dragonLoot里的gold coin)数量并没有增加,这部分后续也需要补充处理哦~
内容的提问来源于stack exchange,提问作者K. Robert
相关产品推荐
相关产品推荐

