Question about scope

Bruno Desthuilliers bruno.42.desthuilliers at websiteburo.invalid
Thu Oct 23 12:24:12 EDT 2008


Pat a écrit :
> I have a Globals class.

Not sure it's such a great idea, but anyway... What's the use case for 
this class ? There are perhaps better (or at least more idiomatic) 
solutions...

> In it, I have a variable defined something like this:
> 
> remote_device_enabled = bool

Could you show actual code ? It would really help. But it seems your 
'Globals' class is mostly 1/ a singleton and 2/ used for application 
wide settings. Is that right ?

> In one module, I assign True/False to Globals.remote_device_enabled. 

Directly to the class ?

Please, once again, provide real code. Well... not necessarily your 
whole code, but at least minimal working code that reproduces the problem.

> Once set, this value never changes.
> 
> In another module, at the top after the imports statements, I tried this:
> 
> from Globals import *

<ot>
The convention is to use lower case names for modules (and MixedCase 
names for classes). This avoids confusion between synonym classes and 
modules...
</ot>

> RDE = Globals.remote_device_enabled
> 
> This way, I thought that I could just use 'if RDE:'
> 
> Within the functions, however, I get a different value.  What am I 
> misunderstanding?

Not enough informations, and my crystal ball is out for repair. Sorry. 
Perhaps some actual code may help ?-)

> I tried this at the top of the module (but it didn't word):
> 
> global RDE

Outside a function body, the 'global' statement is a no-op. In Python, 
'global' really means 'module-level', so anything defined at the module 
level is already as global as it can be.

> RDE =  Globals.remote_device_enabled
> 
> Of course, within a function, the variable using the same two lines of 
> code assigns the correct value to RDE.

Sorry Pat, but there's just not enough context for us to guess what's 
wrong. It's easy enough to get it wrong with real code, so trying to 
guess is just a waste of time.



More information about the Python-list mailing list