On Tuesday, June 21, 2016 at 6:16:09 PM UTC-5, BartC wrote: > On 21/06/2016 23:20, Rick Johnson wrote: > > On Tuesday, June 21, 2016 at 12:15:38 PM UTC-5, Random832 wrote: > > > Storing dynamic data to global space is almost always > > foolish, and I'm a fan of name spaces. But i did not > > recommend such foolish action, i was merely replying to the > > assertion that "Python does have real globals". She does, > > you just have look under the tail! > > How would you use this idea to solve the OP's problem?
I never intended to solve the OP's problem, i was just replying to an unfounded assertion. But since you asked, i will. > I tried using your method but it didn't work: Of course not, the code is absurd. Here is one way (ugly). ============================================================ MODULE A.py ============================================================ """A long long time ago, in a galaxy far away...""" import sys import B sys.modules['__builtin__'].__dict__['BDFL'] = "GvR" print sys.modules['__builtin__'].__dict__['BDFL'] B.attack() print sys.modules['__builtin__'].__dict__['BDFL'] ============================================================ MODULE B.py ============================================================ """Module Episode B: Attack of the Rick!""" import sys def attack(): sys.modules['__builtin__'].__dict__['BDFL'] = 'Rick' ============================================================ OUTPUT FROM A.py ============================================================ GvR Rick Of course, nobody wants to write that much boiler plate over and over again. So if you search the archives for this string: PyModule(G.py): Now Python has REAL globals -- and their scoped to boot! (Kindly ignore the misspelling of "they're") ...you'll find a thread i authored, that includes an object exposing a global namespace named "G". Details of how to inject the symbol G are included. After you have this module installed, you can write the aforementioned code in a much simplier form: ============================================================ MODULE A.py ============================================================ """A long long time ago, in a galaxy far away...""" import sys import B G.BDFL = "GvR" print G.BDFL B.attack() print G.BDFL ============================================================ MODULE B.py ============================================================ """Module Episode B: Attack of the Rick!""" import sys def attack(): G.BDFL = 'Rick' Sweet! -- https://mail.python.org/mailman/listinfo/python-list