On Sun, Apr 19, 2020 at 09:28:28AM -0400, Eric V. Smith wrote:

[...]
> >This will cause a slight reduction in readability of code, as cases of
> >foo = phoo, start to stand out and get changed to just foo (by renaming
> >the variable phoo). It is a natural outcome of you get what you make
> >special cases for.
> 
> I agree: this is part of why I consider this whole proposal to be an 
> anti-pattern. I'd expect a PEP to mention the above issues. Thanks for 
> highlighting them.

If it is an anti-pattern for one method to duplicate the parameter names 
of another method, is it a pattern to intentionally differentiate the 
parameter names by using synonyms?

I regularly -- not frequently, but often enough that it becomes a pain 
point -- have a situation where I have one or more public functions 
which call other functions with the same parameters.

Here's a real signature from one of my functions where this occurs.

    def inspect(obj=_SENTINEL, pattern=None,
                *, dunder=True, meta=False, private=True, 
                ignorecase=False, invert=False)

It ends up calling a ton of methods that accept some or all of the same 
parameter names, using the `dunder=dunder` idiom. Today I learned this 
is an antipattern.

For the record, earlier in this thread I considered making this same 
argument against this proposal because it would encourage people to 
rename their parameters to match those of other functions, but I deleted 
it. At least I hope I deleted it, because seeing it actually written 
down shows me that it's a really weak argument.

Consistency of parameter names is more often a good thing than a bad 
thing. I don't know if that counts as a point in favour of this 
proposal, but I'm pretty sure it shouldn't count as a point against it.



-- 
Steven
_______________________________________________
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/3WYPDIMIQUOLS7FMCN7PPPOZFB52CFPE/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to