I am finding myself doing the following a bit too often:
attr = getattr(obj, 'attr', None) if attr is not None: attr() # Do something, either attr(), or func(attr), or whatever else: # Do something else
Is there a more pythonic way of writing that? Is this better? (At least not in performance, IMO.)
try: obj.attr() # or whatever except AttributeError: # Do something else
Since you are calling the attr, you could just do:
attr
def default_action(): # do something else action = getattr(obj, 'attr', default_action) action()
2.1m questions
2.1m answers
60 comments
57.0k users