markdown guide
 

A class method is exactly what the name says: you have a class and the class has a method.

The difference between instance methods and class methods in Python is that the first ones operate on an instance of the class. Class methods operate on the class itself.

The main purpose of methods is to operate on state. Instance methods operate on the state of a single object, class methods operate on the class itself (they don't have access to the object) and they are also available to all objects of that class.

I think you can totally ignore the abc module in Python in the beginning (though I think you can almost always ignore it :)) unless you're interested in building contracts between callers and implementors. They might be useful in big architectures. abc.abstractmethod basically means: "this method here is not a real implementation, I'm just saying to you that you need to override this method and provide an implementation when you use the base class I'm in".

 

Explain an abstract concept of an abstract concept to a 5-year-old? Here's my best try:


You can use the Nintendo Switch game console whether its controllers are attached to its screen or not. When you detach your controllers, you still need to make sure they are controlling the right game console. When the controller is attached, that is like using a regular class constructor. When they are detached, that's like using classmethod. Abstractmethod is like when you lose a button on your controller and have to replace it - you know exactly the type of button you need because of the type of hole you need to fill.

 

Thanks for the explanation, but still confused hahahahaha

 

Also, when does one use ABC?
In Python everyone is used to duck-typing

Classic DEV Post from Nov 26 '18

Learning Resources for New Developers!

Mpho Mphego profile image
Software Engineer at the South African Radio Astronomy Observatory (SARAO), Cape Town, South Africa

Read more long-form software content.

Sign up (for free)

Become a better software developer.