"Jeff Honey" <[email protected]> wrote

I have a question about where variables are exposed in python.

Take a look at the namespaces topic in my tutor for more details but...

I have a monolothic script with a number of functions defined,
can those functions share variables?

Yes but its usually bad practice.
Python considers module level variables to be "global".
global vars can be read inside a functon within the same module.
global vars can be changed inside a function in the same module provided they are declared as global within the function:

foo = 42

def f():
 global foo   # use the global var
 foo = 66
 return foo

print foo
print f()
print foo

can I instantiate them outside the function of where they are needed?

Yes, see foo above

do they need to be wrapped in quotes, ever? For example:

blah = 123

blah refers to an integer

foo = 'somestring'

foo refers to a string. literal strings need quotes

bar = raw_uinput('?')    # bar refers to a strintg input by the user

def function(foo):
    code that needs foo
    anotherfunction(blah)

No problem

def anotherfunction(blah):
    code that needs blah
    code that uses foo

This needs a global foo line added at the top.

def function(blah, foo):
    anotherfunc(blah)
    anotherfunc(foo)

No problem. blah and foo are local variables inside function().
They are passed as arguments to anotherfunc() whioch weill
assign the objects to their parameters and treat as local
variables within anotherfunc()

..what about my python being called from some parent script
(something OTHER than python)

Thats possible but trickier

that instantiates blah and foo FOR me?

As is this.

But bopth are easier if its another Python script.

Can I just plug those into my code like I would normally?

No.

I guess this is more about HOW and WHERE I can
make variables available for use.

See my tutorial topic...


--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/


_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to