How to Lock Globar Variables across Modules?

Aahz Maruch aahz at panix.com
Thu Sep 28 12:00:28 EDT 2000


In article <8qt24q$cld$1 at hecate.umd.edu>,
William Djaja Tjokroaminata  <billtj at z.glue.umd.edu> wrote:
>
>I am creating a network simulation tool in python.  It is based on
>discrete-event simulation model.  In the simulation, there is only one
>"process" that can run at one time (no modeling of thread in the
>simulation).  Because I follow the function call model in another
>commercial simulation tool, all the function calls do not refer to the
>currently running process.  I figured out that I can create exactly the
>same function call formats by putting the currently running process in a
>global variable in the main module (hence 'globvar_mod1').
>
>As I use inheritance in other modules, I need to refer the currently
>running process.  I have read many times that global variables are
>dangerous.  But I think if we use it judiciously, it can make the
>programming simpler.  I have only one global variable; for example, it is
>simply called 'sv'.  In the main module, all the code will look like
>
>    schedule (sv.current_time)

If sv points to a class instance, this should work -- as long as you
never change sv to point at a different class instance.  Because sv
points to a mutable object, you can change the interior values as much
as you wish.  This will also provide a nice encapsulation should you
ever wish to handle multiple processes (whether run concurrently in
threads or serially without threads).
-- 
                      --- Aahz (Copyright 2000 by aahz at pobox.com)

Androgynous poly kinky vanilla queer het    <*>     http://www.rahul.net/aahz/
Hugs and backrubs -- I break Rule 6

"Perhaps God rewards martyrs, but life seldom does..." --Ulrika O'Brien



More information about the Python-list mailing list