[Python-Dev] PEP 450 adding statistics module (original) (raw)

Michael Foord fuzzyman at voidspace.org.uk
Thu Aug 15 22:28:39 CEST 2013


On 15 Aug 2013, at 21:10, "Eric V. Smith" <eric at trueblade.com> wrote:

On 08/15/2013 01:58 PM, Mark Dickinson wrote:

On Thu, Aug 15, 2013 at 2:08 PM, Steven D'Aprano <steve at pearwood.info_ _<mailto:steve at pearwood.info>> wrote:

- Each scheme ended up needing to be a separate function, for ease of both implementation and testing. So I had four private median functions, which I put inside a class to act as namespace and avoid polluting the main namespace. Then I needed a "master function" to select which of the methods should be called, with all the additional testing and documentation that entailed. That's just an implementation issue, though, and sounds like a minor inconvenience to the implementor rather than anything serious; I don't think that that should dictate the API that's used. - The API doesn't really feel very Pythonic to me. For example, we write: And I guess this is subjective: conversely, the API you're proposing doesn't feel Pythonic to me. :-) I'd like the hear the opinion of other python-dev readers. I agree with Mark: the proposed median, median.low, etc., doesn't feel right. Is there any example of doing this in the stdlib? I suggest just median(), medianlow(), etc. If we do end up keeping it, simpler than the callable singleton is: def median(): return 'median' ... def medianlow(): return 'median.low' ... median.low = medianlow del medianlow median() 'median' median.low() 'median.low'

There's the patch decorator in unittest.mock which provides:

patch(...)
patch.object(...)
patch.dict(...)

The implementation is exactly as you suggest. (e.g. patch.object = _patch_object)

Michael

Eric.


Python-Dev mailing list Python-Dev at python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/fuzzyman%40voidspace.org.uk

-- http://www.voidspace.org.uk/

May you do good and not evil May you find forgiveness for yourself and forgive others May you share freely, never taking more than you give. -- the sqlite blessing http://www.sqlite.org/different.html



More information about the Python-Dev mailing list