Are these good ideas?

Barry barry at barrys-emacs.org
Mon Nov 14 17:36:43 EST 2022



> On 14 Nov 2022, at 22:06, Thomas Passin <list1 at tompassin.net> wrote:
> 
> For parameter passing like your #2, I have packaged them into a dictionary and passed that around.  It was easy enough, and worked well.
> 
I used to use a dict but having been burnt with issues now create a class.

With a class you can add accessor methods that allow you to run debug code as values are changed. Also you can check that values being set are spelt correctly, have reasonable values etc.

Barry

> The only potential problem is in documenting the key/value pairs the dictionary is supposed to contain.  You had better make sure it's made clear somewhere, preferable where it is consumed.
> 
> For "global" values, sure, put them in a module and import them as needed.  Just make sure that none of your code is going to mutate those values, or you will end up with mass confusion.  I suppose you could make them be properties that have no setters, if you want to go to that trouble.
> 
>> On 11/14/2022 12:14 PM, Stephen Tucker wrote:
>> Hi,
>> I have two related issues I'd like comments on.
>> Issue 1 - Global Values
>> Some years ago, I had a situation where
>> (a) I could supply low-level functions that carry out tasks,
>> (b) I needed those functions to communicate with each other, but
>> (c) I had no access to the module that invoked my functions.
>> In order to achieve this, I hit on the idea that I also supply a module
>> that I describe as a "global values" module. This module …
>> (i) … defines the values that the functions use to communicate with each
>> other;
>> (ii) … is the subject of an import statement in each of my functions;
>> (iii) … initialises its values at the start of each run (since the import
>> only carries out an actual import once per session);
>> (iv) … acts as a repository for the values thereafter.
>> This solution works well.
>> Given that I am not particularly concerned about efficiency,
>> (1) Is this a reasonable way to achieve this goal?
>> (2) Do you know of any better ways?
>> Issue 2 - Passed Parameters
>> I am now facing another situation where I am wanting to pass 6 or 7
>> parameters down through several layers of logic (function A calling
>> function B calling ... ) and for results to be passed back.
>> Having had the idea described above, I am considering using it again to
>> save all the parameter-and-results passing.
>> I see nothing wrong with doing that, but I may well be missing something!
>> Comments, please!
>> Stephen Tucker.
> 
> -- 
> https://mail.python.org/mailman/listinfo/python-list



More information about the Python-list mailing list