有没有办法在python中使用get with object而不是dict

时间:2015-03-02 00:40:38

标签: python django dictionary

如果我有字典,这可以正常使用

value = d.get(key, "empty")

但如果d是我django model object,那么我会得到这个

  

对象没有属性' get'

我该如何解决这个问题。我希望像dict一样的行为如果键不存在则变空

1 个答案:

答案 0 :(得分:6)

使用getattr()

value = getattr(d, key, "empty")

另一种选择是直接访问对象的__dict__

value = d.__dict__.get(key, "empty")

但我建议使用getattr()

更新:请注意,getattr(some_dict, key)some_dict.get(key)不同。 getattr()获取对象的属性,但不获取dict的值。