Setting it to None in the subclass is the intended pattern. But CPython
must explicitly handle that somewhere so I don't know how general it is
supported. Try defining a list subclass with __len__ set to None and see
what happens. Then try the same with MutableSequence.
On Tue, Jun 7, 2016 at 10:37 AM, Ethan Furman
For binary methods, such as __add__, either do not implement or return NotImplemented if the other operand/class is not supported.
For non-binary methods, simply do not define.
Except for subclasses when the super-class defines __hash__ and the subclass is not hashable -- then set __hash__ to None.
Question:
Are there any other methods that should be set to None to tell the run-time that the method is not supported? Or is this a general mechanism for subclasses to declare any method is unsupported?
-- ~Ethan~ _______________________________________________ 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)