Re: Problem with Axiom?
Jean-Paul Calderone <[email protected]> Mon, 28 Aug 2006 08:27:25 -0400
| Newsgroups | gmane.comp.python.quotient.dev |
|---|---|
| Message-ID | <20060828122725.1717.812504350.divmod.quotient.33070@ohm> |
On Mon, 28 Aug 2006 06:29:05 -0400, "Chaz." <[email protected]> wrote: >Jean-Paul Calderone wrote: >>On Sun, 27 Aug 2006 16:51:28 -0400, "Chaz." <[email protected]> wrote: >>>I am having a strange problem and I am not sure of exactly where the >>>problem lies. It could be my python code, it could be axiom, I just don't >>>know. >> >>Keeping a global Store like this is complex and error prone. You should >>instantiate a Store in a function, probably your main function, and then >>pass it as an argument to the other parts of your program. >> >>The particular problem you are running into with the example code you >>included is that bar is being imported by Store initialization, which >>causes it to import globaldb before globaldb is set to anything. >> >>Jean-Paul >> >>_______________________________________________ >>Divmod-dev mailing list >>[email protected] >>http://divmod.org/users/mailman.twistd/listinfo/divmod-dev > >Certainly your suggestion will allow me to overcome the problem but it >doesn't explain why, when 'wwGlobalDB' and 'wwLocalDB' are removed and the >code runs, that it works. Only when I don't delete it does it fail. This is >pretty strange. > >Suppose I have > >aa.py > >a = None >def foo(b): > global a > a = b Your axiom code is actually equivalent to a definition of foo which is like: def _f(x): import b return x def foo(b): global a a = _f(b) > >b.py > >from aa import a > >def bar(): > print a > >c.py > >import aa >import b >a.foo(23) >b.bar() > > >Why is this code incorrect? Wouldn't I see 23 printed? > >Chaz > >_______________________________________________ >Divmod-dev mailing list >[email protected] >http://divmod.org/users/mailman.twistd/listinfo/divmod-dev >