On 27/06/2019 04:57, nate lust wrote:
However it is a fair point,
that it might not be transparent and you could end up with an exception
thrown at some point. I would argue this is not much different than using
any library code where you would need to understand the api, but
documentation is not always up to par, and it is indeed one more thing to
think about or check for.

I'm afraid I think it's considerably worse than needing to understand a library's API. When I write something like:

  dastardly.plane.state = DO_SOMETHING_MUTTLEY

I can accept that things might happen behind the scenes (Muttley might do something). I'm manipulating an object that the library has handed me, it's allowed to be a bit strange as long as that doesn't impinge on me much. Personally I would prefer a function interface as that's more explicit that magic may happen, but objects are (intuitively) allowed to be complex.

On the other hand, when I write:

  meta_muttley = get_something_shiny_and_new()

I do not expect anything magic to happen. There is no contextual clue that what looks like a straightforward name rebinding is going to do something quite different, and not leave me with something shiny and new after all. Suddenly a name isn't a simple name any more, and it's not at all obvious.

--
Rhodri James *-* Kynesim Ltd
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/XZHBIJRHT3NIDLTGPUNFU2N6DMCB2EPA/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to