Accessing Module variables from another Module

C

cjt22

Hi

I am new to Python (I have come from a large background of Java) and
wondered if someone could explain to me how I can access variables
stored in my main module to other functions within other modules
called
from this module

for example
file: main.py

from Storage import store
from Initialise import init
from ProcessSteps import process

storeList = store() #Creates a object to store Step objects
init()
process()

file: Initialise.py
def init()
......
storeList.addStep([a,b,c])


file: ProcessSteps.py
def process()
for step in storeList.stepList:
etc

I am currently just passing the variable in as a parameter
but I thought with Python there would be a way to gain direct access
to
storeList within the modules called from the top main module?

Cheers
Chris
 
B

Bruno Desthuilliers

(e-mail address removed) a écrit :
Hi

I am new to Python (I have come from a large background of Java) and
wondered if someone could explain to me how I can access variables
stored in my main module to other functions within other modules
called
from this module
(snip code)
I am currently just passing the variable in as a parameter

And this is the RightThing(tm) to do.
but I thought with Python there would be a way to gain direct access
to
storeList within the modules called from the top main module?

Yes : passing it as a param !-)

For other modules to get direct access to main.storeList, you'd need
these modules to import main in these other modules, which would
introduce circular dependencies, which are something you usuallay don't
want. Also, and while it's ok to read imported modules attributes, it's
certainly not a good idea to mutate or rebind them IMHO, unless you're
ok with spaghetti code.
 
C

cjt22

(e-mail address removed) a écrit :



(snip code)

And this is the RightThing(tm) to do.


Yes : passing it as a param !-)

For other modules to get direct access to main.storeList, you'd need
these modules to import main in these other modules, which would
introduce circular dependencies, which are something you usuallay don't
want. Also, and while it's ok to read imported modules attributes, it's
certainly not a good idea to mutate or rebind them IMHO, unless you're
ok with spaghetti code.

Cheers Bruno, I just wanted to make sure I was being consistent with
the "Python way of things" :)
 
B

Bruno Desthuilliers

(e-mail address removed) a écrit :
(NB : the canonical solution to circular dependencies is to move the
relevent definitions to a third module.)
Also, and while it's ok to read imported modules attributes, it's

Cheers Bruno, I just wanted to make sure I was being consistent with
the "Python way of things" :)

Then fire up your python shell and type 'import this' !-)
 

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

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top