mrstevegross wrote:
I have a python script that is pretty simple: when executed, it
imports a bunch of stuff and then runs some logic. When *imported*, it
defines some variables and exits. Here's what it looks like:
=== foo.py ===
if __name__ != '__main__':
x = 1
exit_somehow
import bar
do_some_stuff...
=== EOF ===
There's a problem, though. On line 3, I wrote "exit_somehow".
Actually, I have no idea how to do that part. Is there some way I can
get python to abandon processing the rest of the script at that point?
I know goto doesn't exist, so that's not an option... sys.exit() won't
work, because that will abort the entire python interpreter, rather
than just the evaluation of the module.
Thanks,
--Steve
use "else" :
=== foo.py ===
if __name__ != '__main__':
x = 1
else:
import bar
do_some_stuff...
=== EOF ===
This is rather unconventional usage, however. In fact, Mike missed the
!= in your comparison, perhaps because the other way is so common. The
usual idiom is:
import some stuff
define some globals, like x=1
def some functions, classes etc.
if __name__ == "__main__":
maybe import some extra stuff
do_some_stuff
In this case, no else is needed,
Notice also that in your case, the x=1 doesn't take effect when you use
it as a script, but only when it's being imported. Usually, this is a
mistake.
--
http://mail.python.org/mailman/listinfo/python-list