On 8/07/20 2:40 PM, Kyle Stanley wrote:
    A matter of style, which I like to follow [is it TDD's influence? - or
    does it actually come-from reading about DBC (Design by Contract*)?] is
    the injunction that one *not* vary the value of a parameter inside a
    method/function.
    (useful in 'open-box testing' to check both the API and that
    input+process agrees with the expected and actual output, but
    irrelevant
    for 'closed-box testing')
    This also has the effect of side-stepping any unintended issues caused
    by changing the values of mutable parameters!
    (although sometimes it's a equally-good idea to do-so!)

    Accordingly, binding argument-values to mutable parameters (instead of
an immutable tuple) might cause problems/"side-effects", were those parameters' values changed within the function!

I think I can see where you're going with this, and it makes me wonder if it might be a reasonable idea to have an explicit syntax to be able to change the behavior to store those values in a tuple instead of a list. The programming style of making use of immutability as much as possible to avoid side effects is quite common, and becoming increasingly so from what I've seen of recent programming trends.

If something along those lines is something you'd be interested in and have some real-world examples of where it could specifically be useful (I currently don't), it might be worth pursuing further on python-ideas.


Thanks for this.

Nor can I imagine a strong reason to vary the existing implementation, and have no real-world example to offer which might drive such motivation.

Our surprise was an apparent lack of consistency. However, the explanation makes good sense (IMHO - now that it is properly informed). As you said, practicality trumps consistency. So, the two situations each have their own rule - and Python is better understood! The value of asking, "why?"!

Contrary to many, I enjoy it when someone pushes me into a 'corner' that I can't explain - such represents both a challenge and learning opportunity, and probably useful that the Junior Programmer-concerned should appreciate that no-one knows 'everything'. (hopefully, others 'playing along at home' using the summary of our REPL-experimentation, have also learned - without first feeling as flummoxed, as we were...)
--
Regards =dn
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to