On Mon, Aug 23, 2010 at 2:22 PM, Yury Selivanov <yseliva...@gmail.com> wrote: > As I understand the only possible way to make 'hasattr' work as it name > indicates (i.e. just check if attribute exists, not run it), is to add > another magic method(s?) to the existing __getattr__ and __getattribute__ > which will tell whether attribute exists or not, and by default this method > would mimic current 'hasattr' behaviour.
You nailed it. At the lowest level (either in C or in Python) there is no way to check for an attribute's presence without getting its value. This has so far been fundamental, and everything else is just appearances. I propose that this is good enough and that we should at this point not try to invent another protocol, just decide whether hasattr() can be fixed (and leaving PyObject_HasAttr*() alone). -- --Guido van Rossum (python.org/~guido) _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com