Question about functions

Terry Reedy tjreedy at udel.edu
Fri Dec 26 09:57:01 EST 2003


"Aubrey Hutchison" <abhjrpe at comcast.net> wrote in message
news:I_2dnalUksLsg3GiRVn-uA at comcast.com...
> Question about functions:

It is not clear what your question is.  Some comments anyway:

> 1)--- module "A" contains the following
>  X          = 999666       #easy to notice value
>  Y          = 111222       #easy to notice value
>  Product = 69696969   #easy to notice value

Should this just be "Product = X*Y' ?

>  def  DoSomething():
>       global Product,X,Y

    global Product # is sufficient since X,Y are read only

>       Product = X*Y

    return X*Y # might be better

>       return 0

Omit: better to allow default return of None when there is no real return
value

>  module imported

I presume this is a comment missing #

>  from A import *

and that this belongs with the toplevel code below.  But you almost
certainly do not want to import everything.  'import A' or 'from A import
DoSomething'.

> 2)--- toplevel code
>
>  def Mult():
>       global Product,X,Y

omit since not used in this function

>       DoSomething():
>       return 0

Again, no return.  Better would simply be 'Mult = DoSomething'

>  """start of top level code """
>  ...
>  ...
>  Product =Mult()
>  ...
>  print Product   (      Result   ----> print out is 69696...)
>
> Per "Python Nutshell" this appears to be the correct result.
> How do you or can you modify the imported variables without using
> classes objects?

You have not used any class objects, so I do not understand question.  In
any case, you can only modify mutable objects.  Otherwise, you can only
rebind name in one namespace or another.  You must keep module A namespace
and main module namespace distinct in your mind since interpreter does.

Terry J. Reedy


> Aubrey
>
>






More information about the Python-list mailing list