On 2/13/2011 8:33 PM, Martin De Kauwe wrote:

Cool! Thanks this seems straight forward, however if I do it this way
then once I change it (i.e. after reading user param file) I can't
pass the changed version to another module can i? Or am I being
stupid? Unless I do it my way I think

import cons
print cons.kg_as_g
1000.0
cons.kg_as_g = 23.4
print cons.kg_as_g

is fine.

But if I call import cons in another module it would be back to 1000.
right?

Wrong. There is one and only one module object, imported into (which means bound to a name in) as many modules as you want. If you change an attribute, it is changed for all. If you add attributes from any module, they are added for all, regardless of whether or not they have already imported it. No different from changing a list or dict with multiple names.

The math module is read only. User python-coded modules are read-write.

--
Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to