On Tue, Sep 3, 2013 at 1:27 AM, Anand B Pillai <anandpil...@letterboxes.org>wrote:
> -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > On Monday 02 September 2013 08:09 PM, venkatakrishnan g wrote: > > import atexit > > > > def callback(): print "about to exit!" > > > > atexit.register( callback ) > > Better use it as decorator. > > import atexit > > @atexit.register > def last_man_standing(): > print "Hasta la vista, Baby."p > With a verb name like *register* I'd much prefer to call the function as opposed to using it as a decorator. The more idiomatic decorators have noun names, viz- property, classmethod, staticmethod, unittest.expectedFailure, (or the one you used below) contextmanager, etc. I'll admit 'unittest.skipTest' is an anomaly, but I've always felt that the unittest module was a somewhat unpythonic 1-1 port of JUnit, so we'll let that one slide. :) The other reason in favour of the invocation syntax over the decorator syntax would be that the 'atexit.register' function is variadic and it would not be possible to send in the arguments to be passed in at exit if 'atexit.register' were used as a decorator. Of course, we could nest the decorated function in another function to provide a lexical closure that would then allow us to specify those arguments, but explicitly declaring the parameters to the cleanup function and explicitly passing them to register just seems much more idiomatic to me. > [...] > - -- > Regards, > > - --Anand > > - > > -------------------------------------------------------------------------------------- > Software Architect/Consultant > anandpil...@letterboxes.org > > Please note my updated email address <anandpil...@letterboxes.org>. > Kindly update your address books. > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.11 (GNU/Linux) > Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ > > iQEcBAEBAgAGBQJSJO29AAoJEHKU2n17CpvDSK4IALaLNb/tP3MjUE6EvQskn8EQ > SLg2BuUY0dy2f+QfHQ2bBZLj3unuHHPHlugfK8wGbNpB80rGm0lpoyqxiU7H2JnN > aSXGyAS435VemqohOr26ZN/5nsYdSkz87KnJNlZ8YagPd+RaDZd/dc6BNM3er7va > DioJnm+txAqIenv3xGeYNQfs7U7QljKcdrzqPjJuQp65ZmSUbcfmPls1I7B6Oxxe > 1Xj+ax/N3wJeNKkWZKsvOJsHgQNMjNhTICfH8Ofsv0c04mlXI/Ej3+yIzQ/2tZwc > k9jQrlX/Wgv+Mza41RPCtJTJGkbfFVTCOiQQjvwA4ZnriuwmTAcH2axELbSr1aU= > =E2cM > -----END PGP SIGNATURE----- > _______________________________________________ > BangPypers mailing list > BangPypers@python.org > http://mail.python.org/mailman/listinfo/bangpypers > I realize I'm a little late to the thread, but just thought I'd put in my 2c. - d _______________________________________________ BangPypers mailing list BangPypers@python.org https://mail.python.org/mailman/listinfo/bangpypers