There are many resources online that explain decorators, so I don't want to add yet another one. I just want to demonstrate their usefulness to Maya coders that are not using them yet.
The examples also show the good practice of using the optional, standard library, convenience function functools.wraps to not lose/overwrite the wrapped functions func.__name__, func.__doc__, ...
1. Preserve Maya selection (maya.cmds)
2. Run in "Settings > Working Units > Linear > centimeter" (PyMEL)