Seems like this is a use case for context managers and/or context variables:
https://docs.python.org/3/library/contextlib.html https://docs.python.org/3/library/contextvars.html On Mon, 2022-11-14 at 17:14 +0000, 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