NB question on global/local variables in functions
Bruno Desthuilliers
onurb at xiludom.gro
Mon Jul 17 08:04:57 EDT 2006
Wolfgang wrote:
> Hi all,
>
> I've started to write some functions but I have some problems with
> common variables in that functions.
>
> So I have some variables which should be accessible by all my functions
> but not accessible by the rest of my code. How can I do this?
You can use a closure:
def makefuns():
c1=123.0
c2=134.0
def fun(temp):
return temp+c1-c2
def fun1(temp):
return temp-c1
return fun, fun1
fun, fun1 = makefuns()
fun(42)
fun1(42)
But the canonical solution is to use a class:
class Foo(object):
def __init__(self):
self._c1=123.0
self._c2=134.0
def fun(self, temp):
return temp + self._c1 - self._c2
def fun1(self, temp):
return temp - self._c1
foo = Foo()
foo.fun(42)
foo.fun1(42)
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'onurb at xiludom.gro'.split('@')])"
More information about the Python-list
mailing list