11
Python interfaces: abandon ABC and switch to Protocols
(levelup.gitconnected.com)
Welcome to the Python community on the programming.dev Lemmy instance!
Past
November 2023
October 2023
July 2023
August 2023
September 2023
Abc and Protocols are not the same, though. The protocol is met when all methods are implemented with the expected signature. Abstract base classes require you to opt in to be considered an Implementation of some interface. Both have different use cases. Protocols are much more fragile.
I wouldn't say Protocols are more "fragile"... They're more strict.
The opposite is true. If you have two interfaces that contain methods with the same name, then they have the same
typing.Protocol
. It is not possible to specify preconditions or contracts, as you would with abc.