On Sun, Apr 19, 2020 at 8:29 AM David Mertz <[email protected]> wrote: > On Sun, Apr 19, 2020, 7:24 AM Richard Damon <[email protected]> > wrote: > >> One of the key motivations of this proposal is to make nicer a call with >> a lot of key word arguments where the local variable name happens >> (intentionally) to match the keyword parameter name. > > > I think Stephen said that this "same name across scopes" is an > anti-pattern. I mostly disagree, though obviously agree that it varies > between different code. >
In some sense, I think the "anti-pattern" here is not so much in the naming of variables, arguments, and parameters, but in ending up on the wring side of the "data" vs. "code" divide. e.g.: "data" might be a dict of key"value pairs, and "code" might be an object with attributes (or a bunch of keyword parameters in a function call) In Python, this is a very blurry line, as you can easily do things like use **kwargs (oassing data into code) and accessing __dict__ (getting data from code), not to mention fancier meta-programming techniques. But if you find yourself passing a lot of same-names variables around, maybe you should jsut be passing around a dict? -CHB I've worked with large code bases where the equivalent complex object is > used in many places. Not necessarily as a continuous life of an actual > object, but sometimes sent as JSON, other times read from database, other > times calculated dynamically, etc. > The JSON - related example is a good one -- JSON maps well to "data" in Python, dicts and lists of numbers and strings. If you find yourself converting a bunch of variable names to/from JSON, you probably should be simply using a dict, and passing that around anyway. and, of course,with **kwargs, you CAN make the transition from a dict to an object and back quite easily. -CHB -- Christopher Barker, PhD Python Language Consulting - Teaching - Scientific Software Development - Desktop GUI and Web Development - wxPython, numpy, scipy, Cython
_______________________________________________ Python-ideas mailing list -- [email protected] To unsubscribe send an email to [email protected] https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/[email protected]/message/ZVLAJD5Z2WHKVRVT6MMCOXQEYZIXFV2K/ Code of Conduct: http://python.org/psf/codeofconduct/
