[EMAIL PROTECTED] writes: > is the main function in python is exact compare to Java main method? > all execution start in main which may takes arguments?
There's no such thing in Python; a module is executed sequentially, with no particular regard to the names of any of the attributes. There is, though, a convention of writing a module that can be either imported or executed as a program, by testing inside the module whether the current module name is the magic string "__main__". === foo.py === # This code is executed whether or not this module is the main module print "Module foo.py is running with name:", __name__ if __name__ == '__main__': # This block is executed only if the module is the main program module print "Module foo.py is the main program" === foo.py === === bar.py === import foo print "Module bar.py is running with name:", __name__ === bar.py === ===== $ python ./foo.py # Run foo.py as a program Module foo.py is running with name: __main__ Module foo.py is the main program $ python ./bar.py # Run bar.py as a program, which imports foo.py as a module Module foo.py is running with name: foo Module bar.py is running with name: __main__ ===== That allows the following idiom: > if __name__ == "__main__": > sys.exit( main(sys.argv) ) All the rest of the code is executed whether or not the program is the main module; but right at the end, after defining all the attributes and functions and classes etc., this test says *if* this module is the main program, then *also* execute the "main" function (and then exit Python with the return value from that function). The benefit of this is that this module, designed to be run as a program, is *also* designed to be imported by other programs so that its functions etc. can be used as required, *without* necessarily running the main function. -- \ "If I haven't seen as far as others, it is because giants were | `\ standing on my shoulders." -- Hal Abelson | _o__) | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list