This should be a simple question...

Neal Becker ndbecker2 at gmail.com
Fri Mar 6 09:08:17 EST 2009


Bruno Desthuilliers wrote:

> Neal Becker a écrit :
>> Maybe I'm missing something obvious here
>> 
>> def A (...):
>> #set a bunch of variables
>>   x = 1
>>   b = 2
>>   ...
>> 
>>   Do something with them
>> 
>> def B (...):
>> #set the same bunch of variables
>>   x = 1
>>   b = 2
>>   ...
>> 
>>   Do something with them
>> 
>> I want to apply DRY, and extract out the common setting of these
>> variables
>> into the local scope of the functions A and B.  How to do this?  (Other
>> than just setting them in the module scope)
> 
> If your "variables" are literal constants common to the whole module,
> and are *not* modified within the functions, the obvious answer is to
> define them as module level (pseudo) symbolic constants.
> 
> Else, please provide more background.
> 
> --

They are just a bunch of variables, but I don't want to put them into module 
scope because there may be other functions C and D with different settings.

Of course I could collect them into an object and refer to them as o.x.  
Requires more typing though.

What if I had:

my_obj = common_variables()
That set all these attributes, but then with function A I inject them into 
A's scope (shouldn't be too hard to do, I think)? 






More information about the Python-list mailing list