Chris Angelico <ros...@gmail.com>:

> Yes, that's correct. The *descriptor* protocol is what allows
> "foo.bar" to cause a function to be executed

That mechanism allows you to expose data fields in the API. If the
implementation later changes, you can emulate the data fields.

I must say, though, I have yet to run into a need for descriptors.

> the *decorator* protocol is what lets you "tag" a function:

i have yet to need that, either. I have *seen* a semi-useful decorator
in code once (@contextlib.contextmanager) but still would prefer
explicit dunder methods.


Marko
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to