[SciPy-user] OpenOpt svn broken on Windows

Matthieu Brucher matthieu.brucher at gmail.com
Wed Jul 16 16:01:30 EDT 2008


2008/7/16 dmitrey <dmitrey.kroshko at scipy.org>:
> Matthieu Brucher wrote:
>>> __solverPaths__ is exported by runProbSolver.py, and than converted from None to
>>> dict. I intended to init it in runProbSolver.py but some issues had
>>> appeared (Python reported of bugs) so I had moved it to ooMisc.py
>>>
>>
>> It has not been moved to ooMisc. The actual registry is only available
>> in runProbSolver. Because you are initializing it in runProbSolver and
>> not in ooMisc.
>>
> What is not been moved to ooMisc?! I have said I encountered bugs while
> creating __solverPaths__ in runProbSolver, so now it's created in ooMisc
> (as None). Of course, then I redefine it as Python dict (in runProbSolver).

Try and get the type of ooMisc.__solverPaths__. It will always be
None. Why ? Because you import the variable None as __solverPaths__ in
rPS. Then you modify the reference, but not the underlying variable.

Try this:

module1.py

s = "Something"

module2.py

import module1.s

module1.s = "Something else"

module3.py

from module1 import s
s = "Something else"

And now

>>> import module1
>>> module1.s
Something
>>> import module2
>>> module1.s
Something else

Try the same with module3
>>> import module1
>>> module1.s
Something
>>> import module3
>>> module1.s
Something

This is exactly your case.

This question showed up on the python-list ML. At first, I didn't
understand either, but if you're thinking about references to
variables, you can understand what is really going on.

Matthieu
-- 
French PhD student
Website : http://matthieu-brucher.developpez.com/
Blogs : http://matt.eifelle.com and http://blog.developpez.com/?blog=92
LinkedIn : http://www.linkedin.com/in/matthieubrucher



More information about the SciPy-User mailing list