On 25/06/2021 20.17, Guido van Rossum wrote: > On Fri, Jun 25, 2021 at 8:22 AM Bluenix <bluenix...@gmail.com > <mailto:bluenix...@gmail.com>> wrote: > > I am not fully aware of how ssl.SSLContext is used, but adding > __slots__ would prevent this. You would see an error similar to: > AttributeError: 'MyClass' object has no attribute 'my_attribute' > > > That's a reasonable solution, except that it's not backwards compatible. > It's possible that there is code out there that for some reason adds > private attributes to an SSLContext instance, and using __slots__ would > break such usage. (They could perhaps fix their code by using a dummy > subclass, but that could well become a non-trivial change to their code, > depending on where they get their SSLContext instances.) > > So unless there's evidence that nobody does that, we're stuck with the > status quo. I'm adding Christian Heimes to the thread in case he has a > hunch either way.
I agree, it is a backwards incompatible change. Also __slots__ won't work. The class has class attributes that can be modified in instances. You cannot have attributes that are both class and instance attributes with __slots__. We'd have to overwrite __setattr__() and block unknown attributes of exact instances of ssl.SSLContext. Christian _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/CCIK7ASYNPYD4QTO462LZHTSKTD6FJKN/ Code of Conduct: http://python.org/psf/codeofconduct/