Sorry about the html - did not realise. Thanks for your comments.
John

On 11 Sep 2013, at 22:49, John Pote <johnhp...@o2.co.uk> wrote:

> Chris,
> Interesting. 
>> 
>> # Test1.py
>> Debug_Value = " "
>> 
>> # Test2.py
>> from Test1 import *
>> # is exactly equivalent to
>> Debug_Value = " "
>> 
> I take it then that assigning to Debug_Value in Test2.py will not change the 
> value of Debug_Value in Test1.py.
> 
> That being the case it would be wrong to assume that the following are 
> identical
> 
> import sys
> 
> and
> 
> from sys import *
> 
> (the latter being a convenience  to avoid having to write sys. before every 
> variable).
> 
> Thus assigning to sys.stdout would change the standard out destination in 
> every module importing sys whereas
> 
> from sys import *
> stdout = foo.dst
> 
> would only change stdout in the current module and sys.stdout would remain 
> unchanged.
> 
> Is my understanding here correct?
> 
> As to global usage I do find it useful to have a file called something like 
> 'preferences.py' and put in there constants to be used throughout the 
> application. But I use these strictly read only. It is good in that system 
> wide constants are defined in one place only. Also if the constants are put 
> inside a class, possibly with getter methods, instantiated as a singleton 
> then initially the values can be typed directly into the preferences file. 
> Later the constructor could be changed to read the constants from an 
> initialisation file of your own format (e.g. .ini or JSON). Thus users 
> without python experience might find it easier to change them without having 
> to look at any python code. On the other hand I appreciate simple constant 
> assignments should be easy enough to change without needing to know any 
> Python.
> 
> Also remember that accessing any form of global that is shared between 
> multiple threads is a recipe for disaster unless appropriate locks are used. 
> A significant advantage of not using globals (except for system wide 
> constants) is that is makes testing of individual modules easier. The less 
> coupling there is between modules the easier it is to understand and test.
> 
> Regards all,
> John
> -- 
> https://mail.python.org/mailman/listinfo/python-list

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

Reply via email to