Steve Barnes suggested adding __params__, as in > def a_method(self, cr, uid, ids, values, context=None): > ... > params = {k:v for k,v in __params__ if k in parent.a_method.keys()} > # Possibly add some additional entries here! > super(self, parent).a_method(**params)
Steve D'Aprano commented > In single-threaded code, there's no problem here: > > A makes the first call; > the interpreter sets function.__params__ to A's arguments; > the function runs with A's arguments and returns; I'm puzzled here. Steve B provided code fragment for k,v in __params__ while Steve D provided code fragment function.__params__ by which I think he meant in terms of Steve B's example a_method.__params__ Perhaps Steve D thought Steve B wrote def a_method(self, cr, uid, ids, values, context=None): ... params = {k:v for k,v in a_method.__params__ # Is this what Steve D thought Steve B wrote? if k in parent.a_method.keys() } # Possibly add some additional entries here! super(self, parent).a_method(**params) If Steve B had written this, then I would agree with Steve D's comment. But as it is, I see no race condition problem, should __params__ be properly implemented as a keyword identifier. Steve D: Please clarify or explain you use of function.__params__ Perhaps it was a misunderstanding. By the way: I've made a similar mistake, on this very thread. So I hope no great shame is attached to such errors. <quote> https://mail.python.org/pipermail/python-ideas/2018-September/053224.html Summary: I addressed the DEFINING problem. My mistake. Some rough ideas for the CALLING problem. Anders has kindly pointed out to me, off-list, that I solved the wrong problem. His problem is CALLING the function fn, not DEFINING fn. Thank you very much for this, Anders. </quote> -- Jonathan _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/