Steven D'Aprano <steve+pyt...@pearwood.info> added the comment: I doubt this is important enough to go into builtins, the only practical use-case I know of for this function is with numbers, so this could go in the math module.
But putting that aside, there are some other problems: - it isn't clear that clamp() is meaningful for anything that could possibly need a key function; - the behaviour you have for iterable arguments is inconsistent with the existing behaviour of min(max(x, a), b): min(max('a string', 'd'), 'm') => returns 'd' not ['d', 'd', 'm', 'm', 'm', 'i', 'm', 'g'] - your iterable behaviour is easily done with a comprehension and doesn't need to be supported by the function itself [clamp(x, a, b) for x in values] - what do you intend clamp() to do with NAN arguments? - for numbers, it is sometimes useful to do one-sided clamping, e.g. clamp(x, -1, ∞). You should read over this thread here: https://mail.python.org/pipermail/python-ideas/2016-July/041262.html ---------- nosy: +steven.daprano _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue36788> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com