NB question on global/local variables in functions

W

Wolfgang

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?

Thanks
Wolfgang

###function.py:

c1=123.0
c2=134.0

def fun(temp):
return temp+c1-c2

def fun1(temp):
return temp-c1


### caller.py
from function import *
print fun(10.0)
print c1
 
B

Bruno Desthuilliers

Wolfgang said:
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)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top