As I watch students struggle with the:

if __name__ == "__main__":

concept (where to put it, what it does),
it occurs to me we could be doing more
to leverage the already well-worn 
"batteries included."

What's different about Python?  The 
rich libraries it comes with, including a
cross-platform GUI IDE.  That's one 
meaning of "batteries included".

But in another sense we could speak
of the generic module as a "battery" with
the "if run top-level" logic having to do 
with battery *testing*.

==== python module ====


(functions, classes, global-to-module 

if __name__ == "__main__":



That changes the meaning a little more,
to where each Python module is like 
"a battery pack" with its own set of 

One thing we do with battery packs is
we "import" (promote) their internals 
within a top-level namespace that starts
off in some other (alien) module.

Another thing we do with battery packs
is run them top-level namespaces on their
own, perhaps depending on imports 
(outsourced resources).

I'm not suggesting harping on this too
much, just another slide that goes by, 
but a fun mnemonic, and reinforcing of
an already approved / useful design pattern 
(see my previous post in this edu-sig archive
for an example of this self-testing style,
relying on doctest for services).