How about some syntactic sugar for " __name__ == '__main__' "?
ethan at stoneleaf.us
Thu Nov 13 21:43:15 CET 2014
-----BEGIN PGP SIGNED MESSAGE-----
On 11/13/2014 12:33 PM, Ian Kelly wrote:
> On Thu, Nov 13, 2014 at 11:32 AM, Ethan Furman <ethan at stoneleaf.us> wrote:
>> On 11/12/2014 01:51 PM, Ian Kelly wrote:
>>> On Wed, Nov 12, 2014 at 2:33 PM, Chris Kaynor wrote:
>>>> A decorator is an interesting idea, and should be easy to implement (only lightly tested):
>>>> def main(func): if func.__module__ == "__main__": func() return func # The return could be omitted to block
>>>> the function from being manually called after import.
>>> This calls it at the wrong time, though. [...]
>> One decorator that won't call too early is atexit.register().
> Nice. That feels like an abuse, though. The actual program won't be able to register its own atexit handlers,
> because the program will already be exiting, and other things decorated with atexit.register might actually be
> called before the main function.
It's definitely a niche use-case -- such as a cli-helper lib: import said lib, and when it's decorators are used set
the atexit handler to call the lib's __main__ function, which checks that the module name of the decorated function is
'__main__', and if it is, run stuff!
Hmmm... hopefully that wasn't difficult to explain. ;)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
-----END PGP SIGNATURE-----
More information about the Python-list