Another decorator syntax idea
Another decorator syntax idea Using Guido's example: -------------------- @ Symbols -------------------- class C(object): @staticmethod @funcattrs(grammar="'@' dotted_name [ '(' [arglist] ')' ]", \ status="experimental", author="BDFL") def longMethodNameForEffect(longArgumentOne=None, longArgumentTwo=42): """This method blah, blah. It supports the following arguments: - longArgumentOne -- a string giving ... - longArgumentTwo -- a number giving ... blah, blah. """ raise NotYetImplemented -------------------- decorate keyword -------------------- class C(object): def longMethodNameForEffect(longArgumentOne=None, longArgumentTwo=42): decorate: staticmethod funcattrs(grammar="'@' dotted_name [ '(' [arglist] ')' ]", \ status="experimental", author="BDFL")] """This method blah, blah. It supports the following arguments: - longArgumentOne -- a string giving ... - longArgumentTwo -- a number giving ... blah, blah. """ raise NotYetImplemented Pros: - Doesn't hide the function name behind @ garbage. - 'decorate' is easier to look at than '@'. - 'decorate' is more meaningful to most readers than '@'. - Block structure isolates decorators from surrounding code, making them more readable. - Indentation rules are consistent with the rest of Python. Cons: - Not pear shaped. - Connelly
participants (1)
-
barnesc@engr.orst.edu