Python 高阶函数伪字典

Python 高阶函数伪字典,python,dictionary,higher-order-functions,Python,Dictionary,Higher Order Functions,我试图使用高阶函数实现一种键值存储。 现在,我请您原谅,这大概是一段非常混乱的代码,很难理解,但下面是: def empty_dic(): return lambda x : False def look_up(key,dic): return dic(key) def add_elem(key,value,dic): return lambda x : value if x == key else dic(x) def change_value(key,new_valu

我试图使用高阶函数实现一种键值存储。 现在,我请您原谅,这大概是一段非常混乱的代码,很难理解,但下面是:

def empty_dic():
   return lambda x : False

def look_up(key,dic):
   return dic(key)

def add_elem(key,value,dic):
   return lambda x : value if x == key else dic(x)

def change_value(key,new_value,dic):
   return lambda x : new_value if key == x else dic(key)

mydic = change_value("colour","red",add_elem("brand","audemars",add_elem("colour","blue",empty_dic())))

print (look_up("brand",mydic))
结果:蓝色


在这种情况下,我希望查找函数返回“audemars”,但它给出了最后一个“add\u elem”函数的颜色。

如果
change\u value
函数中出现错误,请替换

lambda x : new_value if key == x else dic(key)

lambda x : new_value if key == x else dic(x)