Is there any difference, gotcha or disadvantage between these approaches?
foo = dict(key=u"")
bar = foo.get('key', 'foobar')
vs
foo = dict(key=u"")
bar = bool(foo['key']) or 'foobar'
You should most definitely not use the second form, because it will throw a KeyError
if the key does not exist your dictionary. You're only getting acceptable behavior out of the second form because the key was set.