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) >
_______________________________________________ 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