def init(data):
data["last"] = {}
data["first"] = {}
storage = {}
init(storage)
storage['first'] = 'Chen'
storage['last'] = 'LinHua'
def lookup(data, label, name):
return data[label].get(name) # 報錯行
print(lookup(storage, 'first', 'Chen'))
init() 將 data["first"] 初始化為空字典 {},但隨後代碼 storage['first'] = 'Chen' 將其覆蓋為字符串。調用 lookup() 時,data[label] 已是字符串,無 .get() 方法。
# 方案1:調整數據結構,存儲列表或嵌套字典
storage = {'first': {'Chen': 'value'}, 'last': {'LinHua': 'value'}}
# 方案2:lookup中直接按鍵查找,不再調用.get()
def lookup(data, label, name):
return data[label] == name # 或根據實際需求返回值
type(data[label]) 快速定位類型不匹配問題。