"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