> > I'd want to see code that currently uses ``if isinstance`` to switch > between ``max(x)`` and ``x.max()``.
I understand that, and I've spent a few hours searching github with less-than-stellar results due to github's search syntax ignoring '.' and '(' <https://help.github.com/articles/searching-code/#considerations-for-code-search>. (That being said, there are a number of projects <https://github.com/search?l=Python&q=__min__&type=Code> on github that seem to expect __min__ to work (example <https://github.com/windowssocket/algorithm/blob/d731dca2917b6d6073a49d53cf4376b75da7e0c7/binarysearchtree.py>), but it's true that some are using the dunder for their own purposes.). However, there are many modules that implement objects that could make good use of exposing __min__ (e.g. bintrees <https://pypi.org/project/bintrees/>, sortedcontainers <http://www.grantjenks.com/docs/sortedcontainers/>). bintrees provides `min_item()` and `max_item()` accessors. sortedcontainers doesn't seem to explicitly provide similar methods, but maintain the sortedness of the objects so min and max can be accessed via index. And I can't stress enough the value in being able to switch to one of these classes from a standard iterable and have the rest of your code (e.g. `min()`s "just work"). Also, the desire for custom implementations is there <https://stackoverflow.com/questions/45308212/is-there-a-way-to-return-a-custom-value-for-min-and-max-in-python>, but the proposed solutions rely on (IMO) ugly hacks that would break other things. The search for the perfect `x.min() if isinstance(...) else min(x)` still continues, however. On Wed, Jun 27, 2018 at 11:30 AM, Michael Selik <m...@selik.org> wrote: > On Wed, Jun 27, 2018 at 8:16 AM Franklin? Lee < > leewangzhong+pyt...@gmail.com> wrote: > >> On Wed, Jun 27, 2018, 10:31 Steven D'Aprano <st...@pearwood.info> wrote: >> >>> On Wed, Jun 27, 2018 at 06:52:14AM -0700, Michael Selik wrote: >>> > My intent was to ask where a range was in fact passed into max, not >>> merely >>> > where it could be. It'd be enlightening to see a complete, realistic >>> > example. >>> >>> A complete, realistic example is as I said: you call max() on some >>> object which you don't control, the caller does. You could be >>> passed a list, or a set, or a bitset, a binary search tree, a range >>> object, whatever the caller happens to pass to you. >>> >> >> Let's just assume Michael wants to know, and isn't making an argument >> against the proposal. >> > > I do want to know, but it's also an argument against the proposal -- that > no one has contributed in-context usage to demonstrate the value. I'd want > to see code that currently uses ``if isinstance`` to switch between > ``max(x)`` and ``x.max()``. Chris Barker explained the issue well. > > _______________________________________________ > Python-ideas mailing list > Python-ideas@python.org > https://mail.python.org/mailman/listinfo/python-ideas > Code of Conduct: http://python.org/psf/codeofconduct/ > >
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/