Given that attributes are part of function object dictionary, and defined at function definition time like docstring, why not: def func(atr): {author="Guido", deprecated=True} '''doc''' pass Presumably {attributes} will be like "doc": only allowed immediately after def (interchangebly with "doc") and do no harm in other places. Regards, Mike