On 2015-05-13 06:07, Chris Angelico wrote: > On Wed, May 13, 2015 at 5:54 AM, Ian Kelly <ian.g.ke...@gmail.com> > wrote: > > Also, I like to put command-line parsing inside the main function > > and make that its *only* responsibility. The main function then > > calls the real entry point of my script, which will be something > > more specifically named. This also has the advantage that if some > > other module needs to invoke my script, all it has to do is call > > the entry point function which will be named something more > > suitable than "main". > > That often makes sense, but sometimes doesn't. When it doesn't, you > can usually tell because your main function looks something like > this: > > def main(): > do_real_work(*sys.argv) > if __name__=="__main__": main() > > A one-line function that's called from one place? In-line it. > > if __name__ == "__main__": > do_real_work(*sys.argv)
Usually mine look something like def do_real_work(options, args): ... def main(): parser = [optparse,argparse,docopt].... options, args = parser.parse_args() do_real_work(options, args) if __name__ == "__main__": main() since my real-work function usually relies on configuration (sometimes this also includes a config-file or environment variables being munged into some "options" data structure). -tkc -- https://mail.python.org/mailman/listinfo/python-list