Skip to main content

Abstract Classes in Python

 Abstract Classes in Python

            An abstract class can be considered as a blueprint for other classes. It allows you to create a set of methods that must be created within any child classes built from the abstract class. 

 A class which contains one or more abstract methods is called an abstract class.

 An abstract method is a method that has a declaration but does not have an implementation.

 While we are designing large functional units we use an abstract class. When we want to provide a common interface for different implementations of a component, we use an abstract class. 

Abstract Class Example:


from abc import *

class Demo:
  
     @abstractmethod
      def m1(self):
           pass


The above example has one abstract method, so it is considered as abstract class.

The Abstract class concept can  also be done in python by inheriting the base class ABC(Abstract Base Class):



from abc import *

class Student(ABC):
  pass

stud1 = Student()


When an incomplete method is written in above code and when we try to create an instance of the class Student.We may face some errors.

for eg:

from abc import *
class Student(ABC):
  @abstractmethod
  def m1(self):
    pass

stud1 = Student()  


Output:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-28-57b67a37b54d> in <module>()
      5     pass
      6 
----> 7 stud1 = Student()

TypeError:
 Can't instantiate abstract class Student with 
abstract methods m1



Whenever we inhereited ABC base class and leaving the incomplete
abstract method untouched it throws an error.

To over come this , We can directly use abstract method without
extending baseclass(example 1 below) or
we can use that abstract method in some other class(Example 2 below).

Example 1:

from abc import *
class Student():
  @abstractmethod
  def m1(self):
    print('hi hello')

stud1 = Student()  

stud1.m1() #hi hello

Example 2:


from abc import *
class Student(ABC):

  @abstractmethod

  def m1(self):
    pass

class A_student(Student):
    def m1(self):
        print("Student from A Section")



class B_student(Student):
    def m1(self):
        print("Student from B Section")

studA =  A_student()
studB=   B_student()

studA.m1() #Student from A Section
studB.m1() #Student from B Section










Comments

Popular posts from this blog

JENKINS BASICS

  Jenkins  – an open source automation server which enables developers around the world to reliably build, test, and deploy their software. Dashboard: " Dashboard " is the default view shown when you open Jenkins and shows an overview of all  projects configured on a  Jenkins  instance. Creating a New Project: Step 2:  In the next screen, enter the Item name, Choose the ‘Freestyle project option’ Step 3  − The following screen will come up in which you can specify the details of the job. Note  − If you repository if hosted on Github, you can also enter the url of that repository here. In addition to this, you would need to click on the Add button for the credentials to add a user name and password to the github repository so that the code can be picked up from the remote repository. Step 4 − Now go to the Build section and click on Add build step → Execute Windows batch command Before Executing and building a file. Let me describe the task which w...

Architechture of Kubernetes

  Kubernetes Architecture and Components: It follows the client-server architecture, from a high level, a Kubernetes environment consists of a  control plane (master) , a  distributed storage system  for keeping the cluster state consistent ( etcd ), and a number of  cluster nodes (Kubelets). We will now explore the individual components of a standard Kubernetes cluster to understand the process in greater detail. What is Master Node in Kubernetes Architecture? The Kubernetes Master (Master Node) receives input from a CLI (Command-Line Interface) or UI (User Interface) via an API. These are the commands you provide to Kubernetes. You define pods, replica sets, and services that you want Kubernetes to maintain. For example, which container image to use, which ports to expose, and how many pod replicas to run. You also provide the parameters of the desired state for the application(s) running in that cluster. API Server: The  API Server  is the front-end...

NumPY In python

 NumPy Stands for numerical python How do I install NumPy? To install Python NumPy, go to your command prompt and type “pip install numpy”.  Once the installation is completed, go to your IDE (For example: PyCharm) and simply import it by typing:  “import numpy as np” Here, I have different elements that are stored in their respective memory locations. It is said to be two dimensional because it has rows as well as columns. In the above image, we have 3 columns and 4 rows available. How do I start NumPy? Single-dimensional Numpy Array: 1 2 3 import numpy as np a = np.array([ 1 , 2 , 3 ]) print (a) Output – [1 2 3] Multi-dimensional Array: 1 2 a = np.array([( 1 , 2 , 3 ),( 4 , 5 , 6 )]) print (a) O/P – [[ 1 2 3] [4 5 6]] Python NumPy Array v/s List Why NumPy is used in Python? We use python NumPy array instead of a list because of the below three reasons: Less Memory Fast Convenient The very first reason to choose python NumPy array is that it occupies less memory as co...