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

use*_*546 1 python django dictionary

如果我有字典,这工作正常

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

但如果d是我的django model object话我会得到这个

对象没有属性'get'

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

cat*_*ran 6

用途getattr():

value = getattr(d, key, "empty")
Run Code Online (Sandbox Code Playgroud)

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

value = d.__dict__.get(key, "empty")
Run Code Online (Sandbox Code Playgroud)

但我建议使用getattr().

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