calling functions style question

2006-06-06 Thread Brian
I just have a basic style question here.  Suppose you have the program:

def foo1():
do something

def foo2()
do something else

Assume that you want to call these functions at execution.  Is it more
proper to call them directly like:

foo1()
foo2()

or in an if __name__ == __main__: ?

Both will execute when the script is called directly, I was just
wondering if there is a preference, and what the pros and cons to each
method were.

Thanks,
Brian

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: calling functions style question

2006-06-06 Thread Thomas Nelson
The difference becomes clear when you import your program into another
program (or the command line python editor).  __name__!='__main__' when
you import, so the functions will not be called if they're inside the
block.  This is why you see this block so often at the end of scripts;
so that the script runs its main functions when called as a standalone
program, but you can also import the code and do something with it
without setting off those functions.

THN

Brian wrote:
 I just have a basic style question here.  Suppose you have the program:

 def foo1():
 do something

 def foo2()
 do something else

 Assume that you want to call these functions at execution.  Is it more
 proper to call them directly like:

 foo1()
 foo2()

 or in an if __name__ == __main__: ?

 Both will execute when the script is called directly, I was just
 wondering if there is a preference, and what the pros and cons to each
 method were.
 
 Thanks,
 Brian

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: calling functions style question

2006-06-06 Thread Kay Schluehr

Brian wrote:
 I just have a basic style question here.  Suppose you have the program:

 def foo1():
 do something

 def foo2()
 do something else

 Assume that you want to call these functions at execution.  Is it more
 proper to call them directly like:

 foo1()
 foo2()

 or in an if __name__ == __main__: ?

 Both will execute when the script is called directly, I was just
 wondering if there is a preference, and what the pros and cons to each
 method were.

 Thanks,
 Brian

If you want those functions to be called each time your module gets
imported you have to apply calls out of the if __name__ ...
statement. If your module is, for certain reasons, always the __main__
module and never gets imported there is no obvious preference because
behaviour will be the same.

-- 
http://mail.python.org/mailman/listinfo/python-list