Hace varios años** Guido van Rossum, creador original del lenguaje **Python publico en su blog, una entrada tratanto el tema de la escritura de la función main(). Según Guido la estructura mas usual seria algo así:
import sys
import getopt
def main():
# parse command line options
try:
opts, args = getopt.getopt(sys.argv[1:], 'h', ['help'])
except getopt.error, msg:
print msg
print 'for help use --help'
sys.exit(2)
# process options
for o, a in opts:
if o in ('-h', '--help'):
print __doc__
sys.exit(0)
# process arguments
for arg in args:
process(arg) # process() is defined elsewhere
if __name__ == '__main__':
main()
Aunque el post es bastante antiguo se puede extraer bastante información de el, así como de los comentarios, que aportan varias implementaciones, algunas mas avanzadas.
Puedes ojearlo en http://www.artima.com/weblogs/viewpost.jsp?thread=4829