mirror of
https://github.com/Brandon-Rozek/website.git
synced 2024-11-22 00:06:29 -05:00
1.4 KiB
1.4 KiB
title | date | draft | tags | medium_enabled | |
---|---|---|---|---|---|
Quick Python: Abstract Classes | 2020-01-26T18:40:03-05:00 | false |
|
true |
You can create an abstract class in Python by inheriting Abstract Base Class (ABC
) and declaring relevant methods abstract.
First import the following from the standard library,
from abc import ABC, abstractmethod
Then create an abstract class, making sure to add the decorator @abstractmethod
to the constructor. This prevents the user from instantiating the class.
class Animal(ABC):
@abstractmethod
def __init__(self, name):
self.name = name
@abstractmethod
def is_bipedal(self):
pass
def speak(self):
return "Hello my name is " + self.name + " and I am a " + type(self).__name__
In the example above:
- A constructor is made, however, the class Animal cannot be instantiated. Do note that child classes can call the constructor.
is_bipedal
is an abstract method that needs to be defined in child classes.pass
indicates that it is not implemented.speak
is a normal method that will be inherited by child classes.
Now let's look at a class that inherits Animal
.
class Dog(Animal):
def __init__(self, name, owner):
super().__init__(name) # Calls Animal constructor
self.owner = owner
def is_bipedal(self):
return False