Is ElementTree development still active?

2010-08-11 Thread Pinku Surana
I checked the svn repo at effbot.org, but it appears to have no
updates since 2007. Has development moved elsewhere?

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


Re: Confused: Newbie Function Calls

2010-08-11 Thread Pinku Surana
On Aug 11, 12:07 pm, fuglyducky  wrote:
> I am a complete newbie to Python (and programming in general) and I
> have no idea what I'm missing. Below is a script that I am trying to
> work with and I cannot get it to work. When I call the final print
> function, nothing prints. However, if I print within the individual
> functions, I get the appropriate printout.
>
> Am I missing something??? Thanks in advance
>
> 
> # Global variable
> sample_string = ""
>
> def gen_header(sample_string):
>     HEADER = """
>     mymultilinestringhere
>     """
>
>     sample_string += HEADER
>     return sample_string
>
> def gen_nia(sample_string):
>     NIA = """
>     anothermultilinestringhere
>     """
>
>     sample_string += NIA
>     return sample_string
>
> gen_header(sample_string)
> gen_nia(sample_string)
>
> print(sample_string)

There are 2 problems with your program.

(1) If you want to use a global variable in a function, you have to
add the line "global sample_string" to the beginning of that
function.

(2) Once you do (1), you will get an error because you've got
sample_string as a global and a function parameter. Which one do you
want to use in the function? You should change the name of the
parameter to "sample" to solve that confusion.

Here's the result, which works for me:

sample_string = ""
def gen_header(sample):
global sample_string
HEADER = """
mymultilinestringhere
"""
sample_string = sample + HEADER
return sample_string
def gen_nia(sample):
global sample_string
NIA = """
anothermultilinestringhere
"""
sample_string = sample + NIA
return sample_string
gen_header(sample_string)
gen_nia(sample_string)
print(sample_string)
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Confused: Newbie Function Calls

2010-08-11 Thread Pinku Surana
On Aug 11, 12:39 pm, fuglyducky  wrote:
> On Aug 11, 9:31 am, Pinku Surana  wrote:
>
>
>
>
>
> > On Aug 11, 12:07 pm, fuglyducky  wrote:
>
> > > I am a complete newbie to Python (and programming in general) and I
> > > have no idea what I'm missing. Below is a script that I am trying to
> > > work with and I cannot get it to work. When I call the final print
> > > function, nothing prints. However, if I print within the individual
> > > functions, I get the appropriate printout.
>
> > > Am I missing something??? Thanks in advance
>
> > > 
> > > # Global variable
> > > sample_string = ""
>
> > > def gen_header(sample_string):
> > >     HEADER = """
> > >     mymultilinestringhere
> > >     """
>
> > >     sample_string += HEADER
> > >     return sample_string
>
> > > def gen_nia(sample_string):
> > >     NIA = """
> > >     anothermultilinestringhere
> > >     """
>
> > >     sample_string += NIA
> > >     return sample_string
>
> > > gen_header(sample_string)
> > > gen_nia(sample_string)
>
> > > print(sample_string)
>
> > There are 2 problems with your program.
>
> > (1) If you want to use a global variable in a function, you have to
> > add the line "global sample_string" to the beginning of that
> > function.
>
> > (2) Once you do (1), you will get an error because you've got
> > sample_string as a global and a function parameter. Which one do you
> > want to use in the function? You should change the name of the
> > parameter to "sample" to solve that confusion.
>
> > Here's the result, which works for me:
>
> > sample_string = ""
> > def gen_header(sample):
> >     global sample_string
> >     HEADER = """
> >     mymultilinestringhere
> >     """
> >     sample_string = sample + HEADER
> >     return sample_string
> > def gen_nia(sample):
> >     global sample_string
> >     NIA = """
> >     anothermultilinestringhere
> >     """
> >     sample_string = sample + NIA
> >     return sample_string
> > gen_header(sample_string)
> > gen_nia(sample_string)
> > print(sample_string)
>
> Thanks! That did the trick.
>
> I am a bit confused though. I tried to follow a sample in a book
> (which works) where I didn't have to 1) pass the global variable as a
> parameter into the function, 2) did not have to define the global
> variable within the function. I apologize if this is a super stupid
> question but if it is global, why do I have to pass it into the
> function? Shouldn't the global variable be accessible from anywhere???

Since you're new to programming, it's important to understand the
fundamentals.

x = 0 # GLOBAL

def fun(x): # PARAMETER, a type of LOCAL variable
y = 1   # LOCAL
x += y  # Which x do you mean? The local or global?
print x # What is this value?

fun(x)
print x # What is this value?


Even though I used the same name "x" for a local and global variable,
they are actually completely different. When I call "fun(x)" it COPIES
the global value of "x" into the local variable "x" in "fun". In this
code, Python assumes in "x += y" you want to use the LOCAL variable.
To Python the code looks like this:

x_global = 0

def fun(x_local):
y_local = 1
x_local += y_local
print x_local

fun(x_global)
print x_global   # This is never changed!

If that's not what you want, then you have to explicitly tell Python
that you want to use the global value (this is not good programming
style, by the way!). That's what the "global" keyword does.

Try to write some small programs that pass around numbers and strings
with different variable names. Try every combination you can think of
until you get good at predicting what the output is.

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