Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #80631
| Path | csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!bcyclone04.am1.xlned.com!bcyclone04.am1.xlned.com!newsfeed.xs4all.nl!newsfeed4a.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail |
|---|---|
| Return-Path | <ckaynor@zindagigames.com> |
| X-Original-To | python-list@python.org |
| Delivered-To | python-list@mail.python.org |
| X-Spam-Status | OK 0.006 |
| X-Spam-Evidence | '*H*': 0.99; '*S*': 0.00; '"__main__":': 0.09; '"if': 0.09; '__name__': 0.09; 'decorator': 0.09; 'executed': 0.09; 'executes': 0.09; 'implemented.': 0.09; 'imported': 0.09; 'subject:How': 0.10; 'python': 0.11; 'def': 0.12; 'decade,': 0.16; 'exactly,': 0.16; 'func': 0.16; 'hides': 0.16; 'how,': 0.16; 'merely': 0.16; 'namespace,': 0.16; 'pythonic': 0.16; 'script,': 0.16; 'such,': 0.16; 'wrote:': 0.18; 'discussion': 0.18; 'wed,': 0.18; 'module': 0.19; "python's": 0.19; 'programming': 0.22; 'email addr:gmail.com>': 0.22; 'to:name:python- list@python.org': 0.22; 'string,': 0.24; "haven't": 0.24; "i've": 0.25; 'script': 0.25; '>': 0.26; 'header:In-Reply-To:1': 0.27; 'function': 0.29; 'message-id:@mail.gmail.com': 0.30; "i'm": 0.30; "skip:' 10": 0.31; 'idea,': 0.31; 'omitted': 0.31; 'proposing': 0.31; 'subject:some': 0.31; 'worked': 0.33; 'received:74.125.82': 0.34; 'could': 0.34; 'but': 0.35; 'received:google.com': 0.35; '8bit%:9': 0.36; 'module.': 0.36; 'thanks': 0.36; 'should': 0.36; 'too': 0.37; 'two': 0.37; 'being': 0.38; 'implement': 0.38; 'skip:& 10': 0.38; 'nov': 0.38; 'to:addr:python-list': 0.38; 'pm,': 0.38; 'that,': 0.38; 'skip:& 20': 0.39; 'received:74.125': 0.39; '12,': 0.39; 'to:addr:python.org': 0.39; 'called': 0.40; 'how': 0.40; 'easy': 0.60; 'manually': 0.60; 'details.': 0.61; 'john': 0.61; 'name': 0.63; 'myself': 0.63; 'determine': 0.67; 'bothered': 0.68; 'deeply': 0.69; 'decorate': 0.84; 'idiom': 0.84; 'joel': 0.91; 'students,': 0.95; 'taught': 0.96; 'invite': 0.98 |
| X-Google-DKIM-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:content-type; bh=se+wSAn/Oa3sULQYNH8JhpL2/YcFgsYIQ+041f7byF8=; b=T2qoOsMCzsnfwgbjEABXNEaxfOSH94zrOkjp4rRj6pa4pjeKODKv08uRb0Wl7NwNdv O0DxKTHmU6W1h7rqDFpE4C/h/d5nHYYmx+CGrsgrgVacCRm8nLvSAzOBPIAJGkRAjQqX ePa3zBWmRdw9BZ53YepTeL3RvUkHSkoj8JnrKndTzvCLZfDLTC79TLC516b5wgWD4OrT SSDOyHJ+/MukBH8xJLA1cjEOblwMFrJb6JlBpadRALLOrQb7D9cRHjjaHTxjODouVY4d KfHKPo8lFKYHQEIDK8wyBlvxhYTOVS+bblcRUoPWz6O/v9o3SDHYZlJqbRrJmQj675VE LQDA== |
| X-Gm-Message-State | ALoCoQk3kLaM3ITUQgyopIqJWXig6ITCr4uAW5PabPwK+cPP1ioDasFm3oyhG58icgQ/4PSFmfii |
| X-Received | by 10.181.12.6 with SMTP id em6mr7429388wid.24.1415828051329; Wed, 12 Nov 2014 13:34:11 -0800 (PST) |
| MIME-Version | 1.0 |
| In-Reply-To | <CAPM-O+yukMKq8m1Udcw23=kgPc6zvncfS1ohPcyme_4RXMTATg@mail.gmail.com> |
| References | <71b9a111-283f-4006-bc9d-e35782d9888c@googlegroups.com> <CAPM-O+yukMKq8m1Udcw23=kgPc6zvncfS1ohPcyme_4RXMTATg@mail.gmail.com> |
| From | Chris Kaynor <ckaynor@zindagigames.com> |
| Date | Wed, 12 Nov 2014 13:33:51 -0800 |
| Subject | Re: How about some syntactic sugar for " __name__ == '__main__' "? |
| To | "python-list@python.org" <python-list@python.org> |
| Content-Type | multipart/alternative; boundary=f46d043c7ede101b8f0507b0281a |
| X-BeenThere | python-list@python.org |
| X-Mailman-Version | 2.1.15 |
| Precedence | list |
| List-Id | General discussion list for the Python programming language <python-list.python.org> |
| List-Unsubscribe | <https://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe> |
| List-Archive | <http://mail.python.org/pipermail/python-list/> |
| List-Post | <mailto:python-list@python.org> |
| List-Help | <mailto:python-list-request@python.org?subject=help> |
| List-Subscribe | <https://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.15742.1415828053.18130.python-list@python.org> (permalink) |
| Lines | 91 |
| NNTP-Posting-Host | 2001:888:2000:d::a6 |
| X-Trace | 1415828053 news.xs4all.nl 2844 [2001:888:2000:d::a6]:46615 |
| X-Complaints-To | abuse@xs4all.nl |
| X-Received-Bytes | 8518 |
| X-Received-Body-CRC | 3002722040 |
| Xref | csiph.com comp.lang.python:80631 |
Show key headers only | View raw
[Multipart message — attachments visible in raw view] - view raw
On Wed, Nov 12, 2014 at 1:07 PM, Joel Goldstick <joel.goldstick@gmail.com>
wrote:
> On Wed, Nov 12, 2014 at 4:02 PM, John Ladasky
> <john_ladasky@sbcglobal.net> wrote:
> > I have taught Python to several students over the past few years. As I
> have worked with my students, I find myself bothered by the programming
> idiom that we use to determine whether a module is being executed or merely
> imported:
> >
> > "if __name__ == '__main__':"
> >
> > The use of two dunder tokens -- one as a name in a namespace, and the
> other as a string, is intimidating. It exposes too much of Python's guts.
> As such, I think that it is less Pythonic than we might want. Myself, I've
> been programming in Python for a decade, and I still haven't dug very
> deeply into what exactly __name__ means or does.
> >
> > I would like to start a discussion about whether Python should include a
> function which executes this evaluation, and hides all of the unfriendly
> dunderish details. And if that's a good idea, I would invite a discussion
> of how, exactly, it should be implemented. I'm nowhere near proposing a
> PEP, but that may come later.
> >
> > Thanks for your thoughts.
>
> How about a decorator?
>
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.
Just decorate the "main" function of the script with that, and it will be
automatically called when ran as a script, but not when imported as a
module.
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
How about some syntactic sugar for " __name__ == '__main__' "? John Ladasky <john_ladasky@sbcglobal.net> - 2014-11-12 13:02 -0800
Re: How about some syntactic sugar for " __name__ == '__main__' "? Joel Goldstick <joel.goldstick@gmail.com> - 2014-11-12 16:07 -0500
Re: How about some syntactic sugar for " __name__ == '__main__' "? John Ladasky <john_ladasky@sbcglobal.net> - 2014-11-12 13:17 -0800
Re: How about some syntactic sugar for " __name__ == '__main__' "? Ethan Furman <ethan@stoneleaf.us> - 2014-11-12 13:19 -0800
Re: How about some syntactic sugar for " __name__ == '__main__' "? Chris Kaynor <ckaynor@zindagigames.com> - 2014-11-12 13:33 -0800
Re: How about some syntactic sugar for " __name__ == '__main__' "? Marko Rauhamaa <marko@pacujo.net> - 2014-11-12 23:52 +0200
Re: How about some syntactic sugar for " __name__ == '__main__' "? Ian Kelly <ian.g.kelly@gmail.com> - 2014-11-12 14:51 -0700
Re: How about some syntactic sugar for " __name__ == '__main__' "? Skip Montanaro <skip.montanaro@gmail.com> - 2014-11-12 15:55 -0600
Re: How about some syntactic sugar for " __name__ == '__main__' "? Chris Kaynor <ckaynor@zindagigames.com> - 2014-11-12 14:09 -0800
Re: How about some syntactic sugar for " __name__ == '__main__' "? Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-11-15 22:09 +1100
Re: How about some syntactic sugar for " __name__ == '__main__' "? Marko Rauhamaa <marko@pacujo.net> - 2014-11-15 13:54 +0200
Re: How about some syntactic sugar for " __name__ == '__main__' "? Vito De Tullio <vito.detullio@gmail.com> - 2014-11-16 11:26 +0100
Re: How about some syntactic sugar for " __name__ == '__main__' "? Ian Kelly <ian.g.kelly@gmail.com> - 2014-11-12 15:19 -0700
Re: How about some syntactic sugar for " __name__ == '__main__' "? Terry Reedy <tjreedy@udel.edu> - 2014-11-12 18:19 -0500
Re: How about some syntactic sugar for " __name__ == '__main__' "? Chris Angelico <rosuav@gmail.com> - 2014-11-13 10:26 +1100
Re: How about some syntactic sugar for " __name__ == '__main__' "? Terry Reedy <tjreedy@udel.edu> - 2014-11-12 19:35 -0500
Re: How about some syntactic sugar for " __name__ == '__main__' "? Chris Angelico <rosuav@gmail.com> - 2014-11-13 11:54 +1100
Re: How about some syntactic sugar for " __name__ == '__main__' "? Ethan Furman <ethan@stoneleaf.us> - 2014-11-13 10:32 -0800
Re: How about some syntactic sugar for " __name__ == '__main__' "? Ian Kelly <ian.g.kelly@gmail.com> - 2014-11-13 13:33 -0700
Re: How about some syntactic sugar for " __name__ == '__main__' "? Ethan Furman <ethan@stoneleaf.us> - 2014-11-13 12:43 -0800
Re: How about some syntactic sugar for " __name__ == '__main__' "? Skip Montanaro <skip.montanaro@gmail.com> - 2014-11-13 14:44 -0600
Re: How about some syntactic sugar for " __name__ == '__main__' "? Skip Montanaro <skip.montanaro@gmail.com> - 2014-11-13 14:53 -0600
Re: How about some syntactic sugar for " __name__ == '__main__' "? Ian Kelly <ian.g.kelly@gmail.com> - 2014-11-13 15:48 -0700
Re: How about some syntactic sugar for " __name__ == '__main__' "? Ian Kelly <ian.g.kelly@gmail.com> - 2014-11-13 15:56 -0700
Re: How about some syntactic sugar for " __name__ == '__main__' "? Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-11-15 21:52 +1100
Re: How about some syntactic sugar for " __name__ == '__main__' "? Vito De Tullio <vito.detullio@gmail.com> - 2014-11-16 11:39 +0100
Re: How about some syntactic sugar for " __name__ == '__main__' "? Ian Kelly <ian.g.kelly@gmail.com> - 2014-11-16 10:15 -0700
Re: How about some syntactic sugar for " __name__ == '__main__' "? Ethan Furman <ethan@stoneleaf.us> - 2014-12-01 15:19 -0800
Re: How about some syntactic sugar for " __name__ == '__main__' "? Ethan Furman <ethan@stoneleaf.us> - 2014-12-01 16:45 -0800
Re: How about some syntactic sugar for " __name__ == '__main__' "? Chris Angelico <rosuav@gmail.com> - 2014-12-02 12:15 +1100
Re: How about some syntactic sugar for " __name__ == '__main__' "? Ethan Furman <ethan@stoneleaf.us> - 2014-12-02 02:17 -0800
csiph-web