This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Aaron Hall
Recipients Aaron Hall
Date 2017-05-24.20:41:17
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1495658477.95.0.988068330571.issue30463@psf.upfronthosting.co.za>
In-reply-to
Content
We have __slots__ with other ABC's, see http://bugs.python.org/issue11333 and http://bugs.python.org/issue21421.

There are no downsides to having empty slots on a non-instantiable class, but it does give the option of denying __dict__ creation for subclassers. 

The possibility of breaking is for someone using __slots__ but relying on __dict__ creation in a subclass - they will have to explicitly add "__dict__" to __slots__. Since we have added __slots__ to other ABC's, 

I will provide a PR soon on this. Diff should look like this (in Lib/abc.py):

class ABC(metaclass=ABCMeta):
    """Helper class that provides a standard way to create an ABC using
    inheritance.
    """
- pass
+ __slots__ = ()

(I also want to add a test for this, and ensure other ABC's also have this if they don't.)
History
Date User Action Args
2017-05-24 20:41:17Aaron Hallsetrecipients: + Aaron Hall
2017-05-24 20:41:17Aaron Hallsetmessageid: <1495658477.95.0.988068330571.issue30463@psf.upfronthosting.co.za>
2017-05-24 20:41:17Aaron Halllinkissue30463 messages
2017-05-24 20:41:17Aaron Hallcreate