除非您将dict
. 通过让函数实现逻辑,我将获得相同的功能:
这些方面的东西:
def add_to_health_with_max(dict,key,value,max_value):
added = value + dict[key]
if added > max_value:
age = max_value
else:
age = added
dict[key] = age
return age
现在
health = {'John' : 60}
print add_to_dict(health,'John',12,100)
print add_to_dict(health,'John',120,100)
print health
返回:
72
100
{'John': 100}
现在您仍在使用普通的旧字典。
您可以创建自己的类,通过覆盖来实现您所描述的行为__setitem__
,__getattr__
或两者兼而有之(Ashwini Chaudhary 详细说明了您将如何做到这一点),但我怀疑这会矫枉过正并损害可重复性。
是继承dict还是使用函数
询问最好的方法是什么是一个合理的问题 - 这种方法(编写一个函数以特定方式添加到您的 dicts)或子类化 dict 给您一个具有您想要的特定行为的对象。
在您的应用程序上下文之外很难回答这个问题,对于一个将在本地使用此逻辑的小型应用程序,如果您在许多不同的地方需要此功能并且想要传递这些字典,我会采用上述方法建议的 OOP 方法可能更有用。