书上的实作如下:
0;32m######################
def diplayInventory(inventory): #显示字典用的函数
print("Inventory:")
item_total=0
for k,v in inventory.items():
print(str(v)+' '+k)
item_total=item_total+1
print("items number:"+str(item_total))
def addInventory(inventory,addItems):
#这边是要练习写的地方
inv={'rope':1,'剑':1,'gold coin':42,'dagger':1,'arrow':1}
dragonLoot=['超级剑','gold coin','arrow']
inv=addInventory(inv,dragonLoot)
diplayInventory(inv)
######################
其中inv=addInventory(inv,dragonLoot)的参照部分我不明白
因为函数如果这样写就可以:
######################
def addInventory(inventory,addItems):
for i in range(len(addItems)):
inv.setdefault(addItems[i],0) #串行名称key写入inv
inventory[addItems[i]]=inventory[addItems[i]]+1 #增加串行名称i到字典内的数量
inv={'rope':1,'剑':1,'gold coin':42,'dagger':1,'arrow':1} #仓库
dragonLoot=['超级剑','gold coin','arrow']
addInventory(inv,dragonLoot)
diplayInventory(inv)
######################
书里面却是用参照的方式,但diplayInventory函数要传入的应该是字典
参照的对象却是一个把字典参照了函数,那这样就会显示错误讯息:
Traceback (most recent call last):
File "C:\Dropbox\Tools\python code\python.py", line 20, in <module>
diplayInventory(inv)
File "C:\Dropbox\Tools\python code\python.py", line 4, in diplayInventory
for k,v in inventory.items():
AttributeError: 'NoneType' object has no attribute 'items'
想请教如果是按书里的写法应该是怎么解?