[Tutor] NEWBIE!! pipes

Bruce Sass bsass@freenet.edmonton.ab.ca
Thu, 1 Feb 2001 11:22:49 -0700 (MST)


On Wed, 31 Jan 2001 AquaRock7@aol.com wrote:
> What are pipes?  The docs barely touched this subject, it assumed you already 
> knew what they are...  From context I am gathering that it is a connection to 
> the kernel?  (maybe?)  How can I utilize this?

A "pipe" is a connection between two programs, from the stdout of one to
the stdin of another.  On a unix command line you would write it as:
	prog1 | prog2 | prog3

Which would pipe the output of prog1 to the input prog2, etc.

> 1 more quickie:
> >if __name__ == '__main__':
> >     main()
> 
> what is the pourpose if the above code?  It runs the sub main() (duh :) but, 
> why not just main() wihtout the if?  what is the conditional testing for?  
> and what are the variables __main__ and __name__?  i dont believe they are 
> defined in the program, so just what are they?  and, what does putting "__" 
> around a variable actually DO besides look cool ?

Ya, cool, until you try to read it done in a proportional font and can't
tell how many underscores are present.  anyways...

When Python is executing the mainline of a program __name__ has the
value "__main__", so, the above snippet would only execute the main()
routine if the code was being executed as part of the mainline of a
program.  i.e., doing "python snippet" would execute main(), doing
"import snippet" from within a Python program would not.  It tends to
be used it like this...

----- module: snip2
class C1:
    ...

class C2:
    ...

def f1:
    ....

def main():
    # class and function test routine

if __name__ == "__main__":
    main()
-----

When I want to test what I'm woring on I do "^C^C" to execute the
buffer, __name__ == "__main__" and the test code is run; when a prg
imports the finished module the test code is ignored.  The prog doing
the importing could also do a "snip2.main()" to run the test code.

HTH


later,

	Bruce