For this use case I see nothing wrong with hasattr(myobj, '__set__'). On Tue, Jan 17, 2017 at 9:41 AM, Roberto Martínez < robertomartin...@gmail.com> wrote:
> I need to check if some objects obey the descriptor protocol in the > construction of a metaclass. I expect to be able to write something like: > > if isinstance(myobj, abc.DataDescriptor): > # do something > > The other idea crossing my mind is something like: > > if all(hasattr(myobj, attr) for attr in ('__get__', '__set__')): > # do something > > > El mar., 17 ene. 2017 a las 18:07, Guido van Rossum (<gu...@python.org>) > escribió: > >> Well, these are an example of the purest duck typing. Just implement >> __get__ and/or __set__ (and __delete__) and you're good. >> >> What's the situation where you miss them? >> >> --Guido >> >> On Tue, Jan 17, 2017 at 8:51 AM, Roberto Martínez < >> robertomartin...@gmail.com> wrote: >> >> Hi, >> >> I miss abstract base classes in collections.abc implementing the >> descriptor protocol. Any reason why they do not exist? >> >> What do you think of adding NonDataDescriptor and DataDescriptor ABCs? >> >> Best regards, >> Roberto >> >> _______________________________________________ >> Python-Dev mailing list >> Python-Dev@python.org >> https://mail.python.org/mailman/listinfo/python-dev >> Unsubscribe: https://mail.python.org/mailman/options/python-dev/ >> guido%40python.org >> >> >> >> >> -- >> --Guido van Rossum (python.org/~guido) >> > -- --Guido van Rossum (python.org/~guido)
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com