{"id":25530359,"date":"2022-06-26T17:19:57","date_gmt":"2022-06-26T11:49:57","guid":{"rendered":"https:\/\/entri.app\/blog\/?p=25530359"},"modified":"2023-04-28T12:04:56","modified_gmt":"2023-04-28T06:34:56","slug":"object-oriented-programming-python-an-overview","status":"publish","type":"post","link":"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/","title":{"rendered":"Object Oriented Programming Python: An Overview"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_79_2 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69e102e9c825e\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-69e102e9c825e\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#Encapsulation_in_Python\" >Encapsulation in Python<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#What_is_Encapsulation\" >What is Encapsulation?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#What_is_Encapsulation_in_Python\" >What is Encapsulation in Python?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#Methods_to_Control_Access\" >Methods to Control Access<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#Using_Single_Underscore\" >Using Single Underscore<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#Using_Double_Underscores\" >Using Double Underscores<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#Using_Getter_and_Setter_methods_to_access_private_variables\" >Using Getter and Setter methods to access private variables<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#Benefits_of_Encapsulation_in_Python\" >Benefits of Encapsulation in Python<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#What_is_the_need_for_Encapsulation_in_Python\" >What is the need for Encapsulation in Python<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#Main_Concepts_of_Object-Oriented_Programming_OOPs\" >Main Concepts of Object-Oriented Programming (OOPs)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#Class\" >Class<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#Objects\" >Objects<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#Example_1_Creating_a_class_and_object_with_class_and_instance_attributes\" >Example 1: Creating a class and object with class and instance attributes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#Inheritance\" >Inheritance<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#Polymorphism\" >Polymorphism<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#Encapsulation\" >Encapsulation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#Data_Abstraction\" >Data Abstraction\u00a0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#Conclusion\" >Conclusion<\/a><\/li><\/ul><\/nav><\/div>\n<header class=\"entry-header ast-no-thumbnail ast-no-meta\">\n<div class=\"ast-single-post-order\">\n<p>Python is a multi-paradigm programming language. It supports different programming approaches.<\/p>\n<p>One of the popular approaches to solve a programming problem is by creating objects. This is known as Object-Oriented Programming (OOP).<\/p>\n<p>An object has two characteristics:<\/p>\n<ul>\n<li>attributes<\/li>\n<li>behavior<\/li>\n<\/ul>\n<p>The concept of OOP in Python focuses on creating reusable code.<\/p>\n<p>In Python, object-oriented Programming (OOPs) is a programming paradigm that uses objects and classes in programming. It aims to implement real-world entities like inheritance, polymorphisms, encapsulation, etc. in the programming. The main concept of OOPs is to bind the data and the functions that work on that together as a single unit so that no other part of the code can access this data.<\/p>\n<p><a href=\"https:\/\/entri.app\/course\/python-programming-course\/\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-25520910 size-full\" src=\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Square.png\" alt=\"Python and Machine Learning Square\" width=\"345\" height=\"345\" srcset=\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Square.png 345w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Square-300x300.png 300w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Square-150x150.png 150w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Square-24x24.png 24w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Square-48x48.png 48w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Square-96x96.png 96w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Square-75x75.png 75w\" sizes=\"auto, (max-width: 345px) 100vw, 345px\" \/><\/a><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Encapsulation_in_Python\"><\/span><strong>Encapsulation in Python<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<\/div>\n<\/header>\n<div class=\"entry-content clear\">\n<p>When working with an Object Oriented Programming language like Python, encapsulation in Python is one of the 4 important concepts to understand. The other three are\u00a0<span class=\"_ap_link_preview\" data-preview-variation=\"descriptionPage\" data-attribute=\"inheritance\" data-url=\"https:\/\/www.askpython.com\/python\/oops\/inheritance-in-python\">inheritance<\/span>,\u00a0<span class=\"_ap_link_preview\" data-preview-variation=\"descriptionPage\" data-attribute=\"polymorphism\" data-url=\"https:\/\/www.askpython.com\/python\/oops\/polymorphism-in-python\">polymorphism<\/span>, and abstraction.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"What_is_Encapsulation\"><\/span><strong>What is Encapsulation?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>When working with classes and dealing with sensitive data, providing global access to all the variables used within the program is not a good choice. Encapsulation offers a way for us to access the required variables without providing the program full-fledged access to any of those variables.<\/p>\n<p>Updating, modifying, or deleting data from variables can be done through the use of methods that are defined specifically for the purpose. The benefit of using this approach to programming is improved control over the input data and better security.<\/p>\n<p style=\"text-align: center;\"><strong><a class=\"in-cell-link\" href=\"https:\/\/entri.app\/course\/python-programming-course\/\" target=\"_blank\" rel=\"noopener\">&#8220;Ready to take your python skills to the next level? Sign up for a free demo today!&#8221;<\/a><\/strong><\/p>\n<h2><span class=\"ez-toc-section\" id=\"What_is_Encapsulation_in_Python\"><\/span><strong>What is Encapsulation in Python?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The concept of encapsulation is the same in all object-oriented programming languages. The difference is seen when the concepts are applied to particular languages.<\/p>\n<p>Compared to languages like Java that offer access modifiers (public or private) for variables and methods, Python provides access to all the variables and methods globally.<\/p>\n<p>Check the below demonstration of how variables can easily be accessed.<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<div>\n<div id=\"highlighter_191016\" class=\"syntaxhighlighter nogutter python\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"python keyword\">class<\/code> <code class=\"python plain\">Person:<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python keyword\">def<\/code> <code class=\"python plain\">__init__(<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">, name, age<\/code><code class=\"python keyword\">=<\/code><code class=\"python value\">0<\/code><code class=\"python plain\">):<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">.name <\/code><code class=\"python keyword\">=<\/code> <code class=\"python plain\">name<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">.age <\/code><code class=\"python keyword\">=<\/code> <code class=\"python plain\">age<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python keyword\">def<\/code> <code class=\"python plain\">display(<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">):<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python functions\">print<\/code><code class=\"python plain\">(<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">.name)<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python functions\">print<\/code><code class=\"python plain\">(<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">.age)<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"python plain\">person <\/code><code class=\"python keyword\">=<\/code> <code class=\"python plain\">Person(<\/code><code class=\"python string\">'Dev'<\/code><code class=\"python plain\">, <\/code><code class=\"python value\">30<\/code><code class=\"python plain\">)<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"python comments\">#accessing using class method<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"python plain\">person.display()<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"python comments\">#accessing directly from outside<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"python functions\">print<\/code><code class=\"python plain\">(person.name)<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"python functions\">print<\/code><code class=\"python plain\">(person.age)<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>Output<\/strong><\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<div>\n<div id=\"highlighter_573206\" class=\"syntaxhighlighter nogutter python\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"python plain\">Dev<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"python value\">30<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"python plain\">Dev<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"python value\">30<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<p>Since we do not have access modifiers in Python, we will use a few different methods to control the access of variables within a Python program.<\/p>\n<hr class=\"wp-block-separator has-text-color has-background has-vivid-green-cyan-background-color has-vivid-green-cyan-color is-style-wide\" \/>\n<h2><span class=\"ez-toc-section\" id=\"Methods_to_Control_Access\"><\/span><strong>Methods to Control Access<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>There are multiple methods that are offered by Python to limit variable and method access across the program. Let\u2019s go over the methods in detail.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Using_Single_Underscore\"><\/span><strong>Using Single Underscore<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A common Python programming convention to identify a private variable is by prefixing it with an underscore. Now, this doesn\u2019t really make any difference on the compiler side of things. The variable is still accessible as usual. But being a convention that programmers have picked up on, it tells other programmers that the variables or methods have to be used only within the scope of the class.<\/p>\n<p>See the below example:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<div>\n<div id=\"highlighter_351725\" class=\"syntaxhighlighter nogutter python\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"python keyword\">class<\/code> <code class=\"python plain\">Person:<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python keyword\">def<\/code> <code class=\"python plain\">__init__(<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">, name, age<\/code><code class=\"python keyword\">=<\/code><code class=\"python value\">0<\/code><code class=\"python plain\">):<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">.name <\/code><code class=\"python keyword\">=<\/code> <code class=\"python plain\">name<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">._age <\/code><code class=\"python keyword\">=<\/code> <code class=\"python plain\">age<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python keyword\">def<\/code> <code class=\"python plain\">display(<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">):<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python functions\">print<\/code><code class=\"python plain\">(<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">.name)<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python functions\">print<\/code><code class=\"python plain\">(<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">._age)<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"python plain\">person <\/code><code class=\"python keyword\">=<\/code> <code class=\"python plain\">Person(<\/code><code class=\"python string\">'Dev'<\/code><code class=\"python plain\">, <\/code><code class=\"python value\">30<\/code><code class=\"python plain\">)<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"python comments\">#accessing using class method<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"python plain\">person.display()<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"python comments\">#accessing directly from outside<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"python functions\">print<\/code><code class=\"python plain\">(person.name)<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"python functions\">print<\/code><code class=\"python plain\">(person._age)<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<h4><strong>Output<\/strong><\/h4>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<div>\n<div id=\"highlighter_999826\" class=\"syntaxhighlighter nogutter python\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"python plain\">Dev<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"python value\">30<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"python plain\">Dev<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"python value\">30<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<p>It\u2019s clear that the variable access is unchanged. But can we do anything to really make it private? Let\u2019s have a look further.<\/p>\n<p>&nbsp;<\/p>\n<hr class=\"wp-block-separator has-text-color has-background has-vivid-green-cyan-background-color has-vivid-green-cyan-color is-style-wide\" \/>\n<h2><span class=\"ez-toc-section\" id=\"Using_Double_Underscores\"><\/span><strong>Using Double Underscores<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>If you want to make class members i.e. methods and variables private, then you should prefix them with double underscores. But Python offers some sort of support to the private modifier. This mechanism is called\u00a0Name mangling. With this, it is still possible to access the class members from outside it.<\/p>\n<h4><strong>Name Mangling<\/strong><\/h4>\n<p>In Python, any identifier with __Var is rewritten by a python interpreter<strong>\u00a0<\/strong>as _Classname__Var, and the class name remains as the present class name. This mechanism of changing names is called\u00a0<strong>Name Mangling\u00a0<\/strong>in Python.<\/p>\n<p>In the below example, in Class person, the age variable is changed and it\u2019s prefixed by leading double underscores.<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<div>\n<div id=\"highlighter_490820\" class=\"syntaxhighlighter nogutter python\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"python keyword\">class<\/code> <code class=\"python plain\">Person:<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python keyword\">def<\/code> <code class=\"python plain\">__init__(<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">, name, age<\/code><code class=\"python keyword\">=<\/code><code class=\"python value\">0<\/code><code class=\"python plain\">):<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">.name <\/code><code class=\"python keyword\">=<\/code> <code class=\"python plain\">name<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">.__age <\/code><code class=\"python keyword\">=<\/code> <code class=\"python plain\">age<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python keyword\">def<\/code> <code class=\"python plain\">display(<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">):<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python functions\">print<\/code><code class=\"python plain\">(<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">.name)<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python functions\">print<\/code><code class=\"python plain\">(<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">.__age)<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"python plain\">person <\/code><code class=\"python keyword\">=<\/code> <code class=\"python plain\">Person(<\/code><code class=\"python string\">'Dev'<\/code><code class=\"python plain\">, <\/code><code class=\"python value\">30<\/code><code class=\"python plain\">)<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"python comments\">#accessing using class method<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"python plain\">person.display()<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"python comments\">#accessing directly from outside<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"python functions\">print<\/code><code class=\"python plain\">(<\/code><code class=\"python string\">'Trying to access variables from outside the class '<\/code><code class=\"python plain\">)<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"python functions\">print<\/code><code class=\"python plain\">(person.name)<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"python functions\">print<\/code><code class=\"python plain\">(person.__age)<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>Output<\/strong><\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<div>\n<div id=\"highlighter_548683\" class=\"syntaxhighlighter nogutter python\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"python plain\">Dev<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"python value\">30<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"python plain\">Trying to access variables <\/code><code class=\"python keyword\">from<\/code> <code class=\"python plain\">outside the <\/code><code class=\"python keyword\">class<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"python plain\">Dev<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"python plain\">Traceback (most recent call last):<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"python spaces\">\u00a0\u00a0<\/code><code class=\"python functions\">File<\/code> <code class=\"python string\">\"Person.py\"<\/code><code class=\"python plain\">, line <\/code><code class=\"python value\">16<\/code><code class=\"python plain\">, <\/code><code class=\"python keyword\">in<\/code> <code class=\"python plain\">&lt;module&gt;<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python functions\">print<\/code><code class=\"python plain\">(person.__age)<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"python plain\">AttributeError: <\/code><code class=\"python string\">'Person'<\/code> <code class=\"python functions\">object<\/code> <code class=\"python plain\">has no attribute <\/code><code class=\"python string\">'__age'<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<p>You can observe that variables are still be accessed using methods, which is a part of the class. But you cannot access age directly from outside, as it is a private variable.<\/p>\n<h4 style=\"text-align: center;\"><span data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;\\&quot;Experience the power of our web development course with a free demo - enroll now!\\&quot;&quot;}\" data-sheets-userformat=\"{&quot;2&quot;:1061379,&quot;3&quot;:{&quot;1&quot;:0},&quot;4&quot;:{&quot;1&quot;:2,&quot;2&quot;:16777215},&quot;12&quot;:0,&quot;15&quot;:&quot;Roboto, RobotoDraft, Helvetica, Arial, sans-serif&quot;,&quot;16&quot;:10,&quot;23&quot;:1}\" data-sheets-hyperlink=\"https:\/\/entri.app\/course\/python-programming-course\/\"><a class=\"in-cell-link\" href=\"https:\/\/entri.app\/course\/python-programming-course\/\" target=\"_blank\" rel=\"noopener\">&#8220;Experience the power of our web development course with a free demo &#8211; enroll now!&#8221;<\/a><\/span><\/h4>\n<h2><span class=\"ez-toc-section\" id=\"Using_Getter_and_Setter_methods_to_access_private_variables\"><\/span><strong>Using Getter and Setter methods to access private variables<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>If you want to access and change the private variables, accessor (getter) methods and mutators(setter methods) should be used, as they are part of Class.<\/p>\n<div class=\"code-block code-block-3\">\n<div id=\"00000001-665e9297-a617-4e5f-9e6b-0722b683acad\" class=\"_ap_apex_ad\" data-section=\"00000001-665e9297-a617-4e5f-9e6b-0722b683acad\" data-orig-id=\"03dec052-3fc4-4753-88e1-b2bb64738009\" data-render-time=\"1656190050400\" data-ap-network=\"adpTags\" data-refresh-time=\"1656190054179\" data-timeout=\"160\">\n<div id=\"ADP_41988_responsivexresponsive_00000001-665e9297-a617-4e5f-9e6b-0722b683acad\" data-google-query-id=\"CPPzid68yfgCFQSJrAIdQAwA0Q\">\n<div id=\"google_ads_iframe_\/103512698,14629573\/22161098538_2__container__\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<div>\n<div id=\"highlighter_839885\" class=\"syntaxhighlighter nogutter python\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"python keyword\">class<\/code> <code class=\"python plain\">Person:<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python keyword\">def<\/code> <code class=\"python plain\">__init__(<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">, name, age<\/code><code class=\"python keyword\">=<\/code><code class=\"python value\">0<\/code><code class=\"python plain\">):<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">.name <\/code><code class=\"python keyword\">=<\/code> <code class=\"python plain\">name<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">.__age <\/code><code class=\"python keyword\">=<\/code> <code class=\"python plain\">age<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python keyword\">def<\/code> <code class=\"python plain\">display(<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">):<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python functions\">print<\/code><code class=\"python plain\">(<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">.name)<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python functions\">print<\/code><code class=\"python plain\">(<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">.__age)<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python keyword\">def<\/code> <code class=\"python plain\">getAge(<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">):<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python functions\">print<\/code><code class=\"python plain\">(<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">.__age)<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python keyword\">def<\/code> <code class=\"python plain\">setAge(<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">, age):<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python color1\">self<\/code><code class=\"python plain\">.__age <\/code><code class=\"python keyword\">=<\/code> <code class=\"python plain\">age<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"python plain\">person <\/code><code class=\"python keyword\">=<\/code> <code class=\"python plain\">Person(<\/code><code class=\"python string\">'Dev'<\/code><code class=\"python plain\">, <\/code><code class=\"python value\">30<\/code><code class=\"python plain\">)<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"python comments\">#accessing using class method<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"python plain\">person.display()<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"python comments\">#changing age using setter<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"python plain\">person.setAge(<\/code><code class=\"python value\">35<\/code><code class=\"python plain\">)<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"python plain\">person.getAge()<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>Output<\/strong><\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<div>\n<div id=\"highlighter_78866\" class=\"syntaxhighlighter nogutter python\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"python plain\">Dev<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"python value\">30<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"python value\">35<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<hr class=\"wp-block-separator has-text-color has-background has-vivid-green-cyan-background-color has-vivid-green-cyan-color is-style-wide\" \/>\n<p style=\"text-align: center;\"><strong><a class=\"in-cell-link\" href=\"https:\/\/entri.app\/course\/python-programming-course\/\" target=\"_blank\" rel=\"noopener\">&#8220;Get hands-on with our python course &#8211; sign up for a free demo!&#8221;<\/a><\/strong><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Benefits_of_Encapsulation_in_Python\"><\/span><strong>Benefits of Encapsulation in Python<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Encapsulation ensures better data flow and also protects the data from outside sources. The concept of encapsulation makes the code self-sufficient. It is very helpful in the implementation level, as it prioritizes the \u2018how\u2019 type questions, leaving behind the complexities. You should hide the data in the unit to make encapsulation easy and also to secure the data.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"What_is_the_need_for_Encapsulation_in_Python\"><\/span><strong>What is the need for Encapsulation in Python<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The following reasons show why developers find the Encapsulation handy and why the Object-Oriented concept is outclassing many programming languages.<\/p>\n<ul>\n<li>Encapsulation helps in achieving the well-defined interaction in every application.<\/li>\n<li>The Object-Oriented concept focuses on the reusability of code in Python. (DRY \u2013 Don\u2019t Repeat Yourself).<\/li>\n<li>The applications can be securely maintained.<\/li>\n<li>It ensures the flexibility of the code through a proper code organization.<\/li>\n<li>It promotes a smooth experience for the users without exposing any back-end complexities.<\/li>\n<li>It improves the readability of the code. Any changes in one part of the code will not disturb another.<\/li>\n<li>Encapsulation ensures data protection and avoids the access of data accidentally.<\/li>\n<\/ul>\n<p>Encapsulation in Python is, the data is hidden outside the object definition. It enables developers to develop user-friendly experience. This is also helpful in securing data from breaches, as the code is highly secured and cannot be accessed by outside sources.<\/p>\n<div class=\"text\">\n<h2><span class=\"ez-toc-section\" id=\"Main_Concepts_of_Object-Oriented_Programming_OOPs\"><\/span><strong>Main Concepts of Object-Oriented Programming (OOPs)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>Class<\/li>\n<li>Objects<\/li>\n<li>Polymorphism<\/li>\n<li>Encapsulation<\/li>\n<li>Inheritance<\/li>\n<li>Data Abstraction<\/li>\n<\/ul>\n<div class=\"wp-caption alignnone\">\n<p><img decoding=\"async\" src=\"https:\/\/media.geeksforgeeks.org\/wp-content\/uploads\/20220608174843\/OOPS1-282x300.png\" width=\"282\" \/><\/p>\n<p class=\"wp-caption-text\"><strong>OOPs\u00a0<\/strong><\/p>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"Class\"><\/span><strong>Class<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A class is a collection of objects. A class contains the blueprints or the prototype from which the objects are being created. It is a logical entity that contains some attributes and methods.<\/p>\n<p>To understand the need for creating a class let\u2019s consider an example, let\u2019s say you wanted to track the number of dogs that may have different attributes like breed, age. If a list is used, the first element could be the dog\u2019s breed while the second element could represent its age. Let\u2019s suppose there are 100 different dogs, then how would you know which element is supposed to be which? What if you wanted to add other properties to these dogs? This lacks organization and it\u2019s the exact need for classes.<\/p>\n<p><strong>Some points on Python class:<\/strong><\/p>\n<ul>\n<li>Classes are created by keyword class.<\/li>\n<li>Attributes are the variables that belong to a class.<\/li>\n<li>Attributes are always public and can be accessed using the dot (.) operator. Eg.: Myclass.Myattribute<\/li>\n<\/ul>\n<p><strong>Class Definition Syntax:<\/strong><\/p>\n<pre>class ClassName:\r\n   # Statement-1\r\n   .\r\n   .\r\n   .\r\n   # Statement-N<\/pre>\n<h3><strong>Example: Creating an empty Class in Python<\/strong><\/h3>\n<div class=\"responsive-tabs-wrapper\">\n<div class=\"responsive-tabs responsive-tabs--enabled\">\n<div id=\"tablist1-panel1\" class=\"tabcontent responsive-tabs__panel responsive-tabs__panel--active\" role=\"tabpanel\" aria-hidden=\"false\" aria-labelledby=\"tablist1-tab1\">\n<div class=\"code-block\">\n<div class=\"code-gutter\">\n<div class=\"editor-buttons-container\">\n<div class=\"editor-buttons\"><\/div>\n<\/div>\n<\/div>\n<div class=\"code-container\">\n<div id=\"highlighter_826859\" class=\"syntaxhighlighter nogutter\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"comments\"># Python3 program to<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"comments\"># demonstrate defining<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"comments\"># a class<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"keyword\">class<\/code> <code class=\"plain\">Dog:<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">pass<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>In the above example, we have created a class named dog using the class keyword.<\/p>\n<p style=\"text-align: center;\"><strong><a class=\"in-cell-link\" href=\"https:\/\/entri.app\/course\/python-programming-course\/\" target=\"_blank\" rel=\"noopener\">&#8220;Ready to take your python skills to the next level? Sign up for a free demo today!&#8221;<\/a><\/strong><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Objects\"><\/span><strong>Objects<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The object is an entity that has a state and behavior associated with it. It may be any real-world object like a mouse, keyboard, chair, table, pen, etc. Integers, strings, floating-point numbers, even arrays, and dictionaries, are all objects. More specifically, any single integer or any single string is an object. The number 12 is an object, the string \u201cHello, world\u201d is an object, a list is an object that can hold other objects, and so on. You\u2019ve been using objects all along and may not even realize it.<\/p>\n<p><strong>An object consists of :<\/strong><\/p>\n<ul>\n<li><strong>State:<\/strong>\u00a0It is represented by the attributes of an object. It also reflects the properties of an object.<\/li>\n<li><strong>Behavior:<\/strong>\u00a0It is represented by the methods of an object. It also reflects the response of an object to other objects.<\/li>\n<li><strong>Identity:<\/strong>\u00a0It gives a unique name to an object and enables one object to interact with other objects.<\/li>\n<\/ul>\n<h3><strong>Example: Creating an object<\/strong><\/h3>\n<div class=\"responsive-tabs-wrapper\">\n<div class=\"responsive-tabs responsive-tabs--enabled\">\n<div id=\"tablist2-panel1\" class=\"tabcontent responsive-tabs__panel responsive-tabs__panel--active\" role=\"tabpanel\" aria-hidden=\"false\" aria-labelledby=\"tablist2-tab1\">\n<div class=\"code-block\">\n<div class=\"code-gutter\">\n<div class=\"editor-buttons-container\">\n<div class=\"editor-buttons\"><\/div>\n<\/div>\n<\/div>\n<div class=\"code-container\">\n<div id=\"highlighter_127980\" class=\"syntaxhighlighter nogutter\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"plain\">obj <\/code><code class=\"keyword\">=<\/code> <code class=\"plain\">Dog()<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>This will create an object named obj of the class Dog defined above. Before diving deep into objects and class let us understand some basic keywords that will be used while working with objects and classes.<\/p>\n<h3><strong>The self<\/strong><\/h3>\n<ol>\n<li>Class methods must have an extra first parameter in the method definition. We do not give a value for this parameter when we call the method, Python provides it.<\/li>\n<li>If we have a method that takes no arguments, then we still have to have one argument.<\/li>\n<li>This is similar to this pointer in C++ and this reference in Java.<\/li>\n<\/ol>\n<p>When we call a method of this object as myobject.method(arg1, arg2), this is automatically converted by Python into MyClass.method(myobject, arg1, arg2) \u2013 this is all the special self is about.<\/p>\n<h3><strong>The __init__ method<\/strong><\/h3>\n<p>The\u00a0__init__ method\u00a0is similar to constructors in C++ and Java. It is run as soon as an object of a class is instantiated. The method is useful to do any initialization you want to do with your object.<\/p>\n<p>Now let us define a class and create some objects using the self and __init__ method.<\/p>\n<p style=\"text-align: center;\"><strong><a class=\"in-cell-link\" href=\"https:\/\/entri.app\/course\/python-programming-course\/\" target=\"_blank\" rel=\"noopener\">&#8220;Experience the power of our web development course with a free demo &#8211; enroll now!&#8221;<\/a><\/strong><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Example_1_Creating_a_class_and_object_with_class_and_instance_attributes\"><\/span><strong>Example 1: Creating a class and object with class and instance attributes<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"responsive-tabs-wrapper\">\n<div class=\"responsive-tabs responsive-tabs--enabled\">\n<div id=\"tablist3-panel1\" class=\"tabcontent responsive-tabs__panel responsive-tabs__panel--active\" role=\"tabpanel\" aria-hidden=\"false\" aria-labelledby=\"tablist3-tab1\">\n<div class=\"code-block\">\n<div class=\"code-gutter\"><\/div>\n<div class=\"code-container\">\n<div id=\"highlighter_48204\" class=\"syntaxhighlighter nogutter\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"keyword\">class<\/code> <code class=\"plain\">Dog:<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\"># class attribute<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">attr1 <\/code><code class=\"keyword\">=<\/code> <code class=\"string\">\"mammal\"<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\"># Instance attribute<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">def<\/code> <code class=\"plain\">__init__(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">, name):<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"color1\">self<\/code><code class=\"plain\">.name <\/code><code class=\"keyword\">=<\/code> <code class=\"plain\">name<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"comments\"># Driver code<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"comments\"># Object instantiation<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"plain\">Rodger <\/code><code class=\"keyword\">=<\/code> <code class=\"plain\">Dog(<\/code><code class=\"string\">\"Rodger\"<\/code><code class=\"plain\">)<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"plain\">Tommy <\/code><code class=\"keyword\">=<\/code> <code class=\"plain\">Dog(<\/code><code class=\"string\">\"Tommy\"<\/code><code class=\"plain\">)<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"comments\"># Accessing class attributes<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"functions\">print<\/code><code class=\"plain\">(<\/code><code class=\"string\">\"Rodger is a {}\"<\/code><code class=\"plain\">.<\/code><code class=\"functions\">format<\/code><code class=\"plain\">(Rodger.__class__.attr1))<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"keyword\">print<\/code><code class=\"plain\">(<\/code><code class=\"string\">\"Tommy is also a {}\"<\/code><code class=\"plain\">.<\/code><code class=\"functions\">format<\/code><code class=\"plain\">(Tommy.__class__.attr1))<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"comments\"># Accessing instance attributes<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"functions\">print<\/code><code class=\"plain\">(<\/code><code class=\"string\">\"My name is {}\"<\/code><code class=\"plain\">.<\/code><code class=\"functions\">format<\/code><code class=\"plain\">(Rodger.name))<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"keyword\">print<\/code><code class=\"plain\">(<\/code><code class=\"string\">\"My name is {}\"<\/code><code class=\"plain\">.<\/code><code class=\"functions\">format<\/code><code class=\"plain\">(Tommy.name))<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"code-output\">\n<h4><strong>Output<\/strong><\/h4>\n<pre>Rodger is a mammal\r\nTommy is also a mammal\r\nMy name is Rodger\r\nMy name is Tommy<\/pre>\n<\/div>\n<h3><strong>Example 2: Creating Class and objects with methods<\/strong><\/h3>\n<div class=\"responsive-tabs-wrapper\">\n<div class=\"responsive-tabs responsive-tabs--enabled\">\n<div id=\"tablist4-panel1\" class=\"tabcontent responsive-tabs__panel responsive-tabs__panel--active\" role=\"tabpanel\" aria-hidden=\"false\" aria-labelledby=\"tablist4-tab1\">\n<div class=\"code-block\">\n<div class=\"code-gutter\">\n<div class=\"editor-buttons-container\">\n<div class=\"editor-buttons\"><\/div>\n<\/div>\n<\/div>\n<div class=\"code-container\">\n<div id=\"highlighter_510071\" class=\"syntaxhighlighter nogutter\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"keyword\">class<\/code> <code class=\"plain\">Dog:<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\"># class attribute<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">attr1 <\/code><code class=\"keyword\">=<\/code> <code class=\"string\">\"mammal\"<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\"># Instance attribute<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">def<\/code> <code class=\"plain\">__init__(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">, name):<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"color1\">self<\/code><code class=\"plain\">.name <\/code><code class=\"keyword\">=<\/code> <code class=\"plain\">name<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">def<\/code> <code class=\"plain\">speak(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">):<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">print<\/code><code class=\"plain\">(<\/code><code class=\"string\">\"My name is {}\"<\/code><code class=\"plain\">.<\/code><code class=\"functions\">format<\/code><code class=\"plain\">(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">.name))<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"comments\"># Driver code<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"comments\"># Object instantiation<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"plain\">Rodger <\/code><code class=\"keyword\">=<\/code> <code class=\"plain\">Dog(<\/code><code class=\"string\">\"Rodger\"<\/code><code class=\"plain\">)<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"plain\">Tommy <\/code><code class=\"keyword\">=<\/code> <code class=\"plain\">Dog(<\/code><code class=\"string\">\"Tommy\"<\/code><code class=\"plain\">)<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"comments\"># Accessing class methods<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"plain\">Rodger.speak()<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"plain\">Tommy.speak()<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"code-output\">\n<p><strong>Output<\/strong><\/p>\n<pre>My name is Rodger\r\nMy name is Tommy<\/pre>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"Inheritance\"><\/span><strong>Inheritance<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Inheritance is the capability of one class to inherit the properties from another class. The class that derives properties is called the derived class or child class and the class from which the properties are being derived is called the base class or parent class. The benefits of inheritance are:<\/p>\n<ul>\n<li>It represents real-world relationships well.<\/li>\n<li>It provides the reusability of a code. We don\u2019t have to write the same code again and again. It also allows us to add more features to a class without modifying it.<\/li>\n<li>It is transitive in nature, which means that if class B inherits from another class A, then all the subclasses of B would automatically inherit from class A.<\/li>\n<\/ul>\n<h3><strong>Types of Inheritance\u00a0<\/strong><\/h3>\n<p><strong>Single Inheritance<\/strong>:<br \/>\nSingle-level inheritance enables a derived class to inherit characteristics from a single-parent class.<\/p>\n<p><strong>Multilevel Inheritance:<\/strong><br \/>\nMulti-level inheritance enables a derived class to inherit properties from an immediate parent class which in turn inherits properties from his parent class.<\/p>\n<p><strong>Hierarchical Inheritance:<\/strong><br \/>\nHierarchical level inheritance enables more than one derived class to inherit properties from a parent class.<\/p>\n<p><strong>Multiple Inheritance:<\/strong><br \/>\nMultiple level inheritance enables one derived class to inherit properties from more than one base class.<\/p>\n<h3><strong>Example: Inheritance in Python<\/strong><\/h3>\n<div class=\"responsive-tabs-wrapper\">\n<div class=\"responsive-tabs responsive-tabs--enabled\">\n<div id=\"tablist5-panel1\" class=\"tabcontent responsive-tabs__panel responsive-tabs__panel--active\" role=\"tabpanel\" aria-hidden=\"false\" aria-labelledby=\"tablist5-tab1\">\n<div class=\"code-block\">\n<div class=\"code-gutter\">\n<div class=\"editor-buttons-container\">\n<div class=\"editor-buttons\">\n<div class=\"editor-buttons-div\" title=\"Run and Edit\">\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"code-container\">\n<div id=\"highlighter_439912\" class=\"syntaxhighlighter nogutter\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"comments\"># Python code to demonstrate how parent constructors<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"comments\"># are called.<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"comments\"># parent class<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"keyword\">class<\/code> <code class=\"plain\">Person(<\/code><code class=\"functions\">object<\/code><code class=\"plain\">):<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\"># __init__ is known as the constructor<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">def<\/code> <code class=\"plain\">__init__(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">, name, idnumber):<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"color1\">self<\/code><code class=\"plain\">.name <\/code><code class=\"keyword\">=<\/code> <code class=\"plain\">name<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"color1\">self<\/code><code class=\"plain\">.idnumber <\/code><code class=\"keyword\">=<\/code> <code class=\"plain\">idnumber<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">def<\/code> <code class=\"plain\">display(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">):<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"functions\">print<\/code><code class=\"plain\">(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">.name)<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"functions\">print<\/code><code class=\"plain\">(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">.idnumber)<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">def<\/code> <code class=\"plain\">details(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">):<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">print<\/code><code class=\"plain\">(<\/code><code class=\"string\">\"My name is {}\"<\/code><code class=\"plain\">.<\/code><code class=\"functions\">format<\/code><code class=\"plain\">(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">.name))<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"functions\">print<\/code><code class=\"plain\">(<\/code><code class=\"string\">\"IdNumber: {}\"<\/code><code class=\"plain\">.<\/code><code class=\"functions\">format<\/code><code class=\"plain\">(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">.idnumber))<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"comments\"># child class<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"keyword\">class<\/code> <code class=\"plain\">Employee(Person):<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">def<\/code> <code class=\"plain\">__init__(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">, name, idnumber, salary, post):<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"color1\">self<\/code><code class=\"plain\">.salary <\/code><code class=\"keyword\">=<\/code> <code class=\"plain\">salary<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"color1\">self<\/code><code class=\"plain\">.post <\/code><code class=\"keyword\">=<\/code> <code class=\"plain\">post<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\"># invoking the __init__ of the parent class<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">Person.__init__(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">, name, idnumber)<\/code><\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">def<\/code> <code class=\"plain\">details(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">):<\/code><\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"functions\">print<\/code><code class=\"plain\">(<\/code><code class=\"string\">\"My name is {}\"<\/code><code class=\"plain\">.<\/code><code class=\"functions\">format<\/code><code class=\"plain\">(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">.name))<\/code><\/div>\n<div class=\"line number31 index30 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"functions\">print<\/code><code class=\"plain\">(<\/code><code class=\"string\">\"IdNumber: {}\"<\/code><code class=\"plain\">.<\/code><code class=\"functions\">format<\/code><code class=\"plain\">(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">.idnumber))<\/code><\/div>\n<div class=\"line number32 index31 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">print<\/code><code class=\"plain\">(<\/code><code class=\"string\">\"Post: {}\"<\/code><code class=\"plain\">.<\/code><code class=\"functions\">format<\/code><code class=\"plain\">(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">.post))<\/code><\/div>\n<div class=\"line number33 index32 alt2\"><\/div>\n<div class=\"line number34 index33 alt1\"><\/div>\n<div class=\"line number35 index34 alt2\"><code class=\"comments\"># creation of an object variable or an instance<\/code><\/div>\n<div class=\"line number36 index35 alt1\"><code class=\"plain\">a <\/code><code class=\"keyword\">=<\/code> <code class=\"plain\">Employee(<\/code><code class=\"string\">'Rahul'<\/code><code class=\"plain\">, <\/code><code class=\"value\">886012<\/code><code class=\"plain\">, <\/code><code class=\"value\">200000<\/code><code class=\"plain\">, <\/code><code class=\"string\">\"Intern\"<\/code><code class=\"plain\">)<\/code><\/div>\n<div class=\"line number37 index36 alt2\"><\/div>\n<div class=\"line number38 index37 alt1\"><code class=\"comments\"># calling a function of the class Person using<\/code><\/div>\n<div class=\"line number39 index38 alt2\"><code class=\"comments\"># its instance<\/code><\/div>\n<div class=\"line number40 index39 alt1\"><code class=\"plain\">a.display()<\/code><\/div>\n<div class=\"line number41 index40 alt2\"><code class=\"plain\">a.details()<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"code-output\">\n<h4><strong>Output<\/strong><\/h4>\n<pre>Rahul\r\n886012\r\nMy name is Rahul\r\nIdNumber: 886012\r\nPost: Intern<\/pre>\n<\/div>\n<p>In the above, we have created two classes i.e. Person (parent class) and Employee (Child Class). The Employee class inherits from the Person class. We can use the methods of the person class through employee class as seen in the display function in the above code. A child class can also modify the behavior of the parent class as seen through the details() method.<\/p>\n<p style=\"text-align: center;\"><strong><a class=\"in-cell-link\" href=\"https:\/\/entri.app\/course\/python-programming-course\/\" target=\"_blank\" rel=\"noopener\">&#8220;Get hands-on with our python course &#8211; sign up for a free demo!&#8221;<\/a><\/strong><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Polymorphism\"><\/span><strong>Polymorphism<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Polymorphism simply means having many forms. For example, we need to determine if the given species of birds fly or not, using polymorphism we can do this using a single function.<\/p>\n<h3><strong>Example: Polymorphism in Python<\/strong><\/h3>\n<div class=\"responsive-tabs-wrapper\">\n<div class=\"responsive-tabs responsive-tabs--enabled\">\n<div id=\"tablist6-panel1\" class=\"tabcontent responsive-tabs__panel responsive-tabs__panel--active\" role=\"tabpanel\" aria-hidden=\"false\" aria-labelledby=\"tablist6-tab1\">\n<div class=\"code-block\">\n<div class=\"code-container\">\n<div id=\"highlighter_156301\" class=\"syntaxhighlighter nogutter\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"keyword\">class<\/code> <code class=\"plain\">Bird:<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">def<\/code> <code class=\"plain\">intro(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">):<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">print<\/code><code class=\"plain\">(<\/code><code class=\"string\">\"There are many types of birds.\"<\/code><code class=\"plain\">)<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">def<\/code> <code class=\"plain\">flight(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">):<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">print<\/code><code class=\"plain\">(<\/code><code class=\"string\">\"Most of the birds can fly but some cannot.\"<\/code><code class=\"plain\">)<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"keyword\">class<\/code> <code class=\"plain\">sparrow(Bird):<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">def<\/code> <code class=\"plain\">flight(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">):<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"functions\">print<\/code><code class=\"plain\">(<\/code><code class=\"string\">\"Sparrows can fly.\"<\/code><code class=\"plain\">)<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"keyword\">class<\/code> <code class=\"plain\">ostrich(Bird):<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">def<\/code> <code class=\"plain\">flight(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">):<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">print<\/code><code class=\"plain\">(<\/code><code class=\"string\">\"Ostriches cannot fly.\"<\/code><code class=\"plain\">)<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"plain\">obj_bird <\/code><code class=\"keyword\">=<\/code> <code class=\"plain\">Bird()<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"plain\">obj_spr <\/code><code class=\"keyword\">=<\/code> <code class=\"plain\">sparrow()<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"plain\">obj_ost <\/code><code class=\"keyword\">=<\/code> <code class=\"plain\">ostrich()<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"plain\">obj_bird.intro()<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"plain\">obj_bird.flight()<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"plain\">obj_spr.intro()<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"plain\">obj_spr.flight()<\/code><\/div>\n<div class=\"line number28 index27 alt1\"><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"plain\">obj_ost.intro()<\/code><\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"plain\">obj_ost.flight()<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"code-output\">\n<h4><strong>Output<\/strong><\/h4>\n<pre>There are many types of birds.\r\nMost of the birds can fly but some cannot.\r\nThere are many types of birds.\r\nSparrows can fly.\r\nThere are many types of birds.\r\nOstriches cannot fly.<\/pre>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"Encapsulation\"><\/span><strong>Encapsulation<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Encapsulation is one of the fundamental concepts in object-oriented programming (OOP). It describes the idea of wrapping data and the methods that work on data within one unit. This puts restrictions on accessing variables and methods directly and can prevent the accidental modification of data. To prevent accidental change, an object\u2019s variable can only be changed by an object\u2019s method. Those types of variables are known as private variables.<\/p>\n<p>A class is an example of encapsulation as it encapsulates all the data that is member functions, variables, etc.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.geeksforgeeks.org\/wp-content\/uploads\/20191013164254\/encapsulation-in-python.png\" alt=\"Encapsulation in Python\" \/><\/p>\n<h3><strong>Example: Encapsulation in Python<\/strong><\/h3>\n<div class=\"responsive-tabs-wrapper\">\n<div class=\"responsive-tabs responsive-tabs--enabled\">\n<div id=\"tablist7-panel1\" class=\"tabcontent responsive-tabs__panel responsive-tabs__panel--active\" role=\"tabpanel\" aria-hidden=\"false\" aria-labelledby=\"tablist7-tab1\">\n<div class=\"code-block\">\n<div class=\"code-gutter\">\n<div class=\"editor-buttons-container\">\n<div class=\"editor-buttons\"><\/div>\n<\/div>\n<\/div>\n<div class=\"code-container\">\n<div id=\"highlighter_268348\" class=\"syntaxhighlighter nogutter\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"comments\"># Python program to<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"comments\"># demonstrate private members<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"comments\"># Creating a Base class<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"keyword\">class<\/code> <code class=\"plain\">Base:<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">def<\/code> <code class=\"plain\">__init__(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">):<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"color1\">self<\/code><code class=\"plain\">.a <\/code><code class=\"keyword\">=<\/code> <code class=\"string\">\"GeeksforGeeks\"<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"color1\">self<\/code><code class=\"plain\">.__c <\/code><code class=\"keyword\">=<\/code> <code class=\"string\">\"GeeksforGeeks\"<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"comments\"># Creating a derived class<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"keyword\">class<\/code> <code class=\"plain\">Derived(Base):<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"keyword\">def<\/code> <code class=\"plain\">__init__(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">):<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\"># Calling constructor of<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"comments\"># Base class<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"plain\">Base.__init__(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">)<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"functions\">print<\/code><code class=\"plain\">(<\/code><code class=\"string\">\"Calling private member of base class: \"<\/code><code class=\"plain\">)<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"undefined spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"functions\">print<\/code><code class=\"plain\">(<\/code><code class=\"color1\">self<\/code><code class=\"plain\">.__c)<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><\/div>\n<div class=\"line number20 index19 alt1\"><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"comments\"># Driver code<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"plain\">obj1 <\/code><code class=\"keyword\">=<\/code> <code class=\"plain\">Base()<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"functions\">print<\/code><code class=\"plain\">(obj1.a)<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"comments\"># Uncommenting print(obj1.c) will<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"comments\"># raise an AttributeError<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"comments\"># Uncommenting obj2 = Derived() will<\/code><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"comments\"># also raise an AtrributeError as<\/code><\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"comments\"># private member of base class<\/code><\/div>\n<div class=\"line number31 index30 alt2\"><code class=\"comments\"># is called inside derived class<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"code-output\">\n<p><strong>Output<\/strong><\/p>\n<pre>GeeksforGeeks<\/pre>\n<\/div>\n<p>In the above example, we have created the c variable as the private attribute. We cannot even access this attribute directly and can\u2019t even change its value.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Data_Abstraction\"><\/span><strong>Data Abstraction\u00a0<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>It hides the unnecessary code details from the user. Also, \u00a0when we do not want to give out sensitive parts of our code implementation , data abstraction came.<\/p>\n<p>Data Abstraction in Python can be achieved through creating abstract classes.<\/p>\n<p><a href=\"https:\/\/entri.app\/course\/python-programming-course\/\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-25522670 size-full\" src=\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Rectangle-1.png\" alt=\"Python and Machine Learning Rectangle\" width=\"970\" height=\"250\" srcset=\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Rectangle-1.png 970w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Rectangle-1-300x77.png 300w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Rectangle-1-768x198.png 768w, https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/04\/Python-and-Machine-Learning-Rectangle-1-750x193.png 750w\" sizes=\"auto, (max-width: 970px) 100vw, 970px\" \/><\/a><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span><strong>Conclusion<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>Object-Oriented Programming makes the program easy to understand as well as efficient.<\/li>\n<li>Since the class is sharable, the code can be reused.<\/li>\n<li>Data is safe and secure with data abstraction.<\/li>\n<li>Polymorphism allows the same interface for different objects, so programmers can write efficient code.<\/li>\n<\/ul>\n<h4><strong>Related Articles<\/strong><\/h4>\n<div class=\"table-responsive wprt_style_display\">\n<div class=\"table-responsive wprt_style_display\">\n<div class=\"table-responsive wprt_style_display\">\n<div class=\"table-responsive wprt_style_display\">\n<div class=\"table-responsive wprt_style_display\">\n<table class=\"table\" dir=\"ltr\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<colgroup>\n<col width=\"329\" \/>\n<col width=\"309\" \/><\/colgroup>\n<tbody>\n<tr>\n<td data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;Kerala PSC VFA Syllabus&quot;}\" data-sheets-hyperlink=\"https:\/\/entri.app\/blog\/kerala-psc-village-field-assistant-vfa-syllabus-exam-pattern\/\"><strong><a class=\"in-cell-link\" href=\"https:\/\/entri.app\/blog\/data-visualization-in-python\/\" target=\"_blank\" rel=\"noopener\">Introduction to Data Visualization in Python<\/a><\/strong><\/td>\n<td data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;Kerala PSC VFA Mock Test&quot;}\" data-sheets-hyperlink=\"https:\/\/entri.app\/blog\/kerala-psc-vfa-free-mock-test\/\"><strong><a class=\"in-cell-link\" href=\"https:\/\/entri.app\/blog\/why-python-is-used-for-data-science\/\" target=\"_blank\" rel=\"noopener\">Why Python Is Used For Data Science?<\/a><\/strong><\/td>\n<\/tr>\n<tr>\n<td data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;Kerala PSC VFA Exam Date&quot;}\" data-sheets-hyperlink=\"https:\/\/entri.app\/blog\/kerala-psc-vfa-exam-date\/\"><strong><a class=\"in-cell-link\" href=\"https:\/\/entri.app\/blog\/step-by-step-guide-for-getting-a-job-as-a-python-developer\/\" target=\"_blank\" rel=\"noopener\">Guide for getting a job as a Python Developer<\/a><\/strong><\/td>\n<td data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;Kerala PSC VFA Video Course&quot;}\"><strong><a class=\"in-cell-link\" href=\"https:\/\/entri.app\/blog\/top-python-interview-questions-and-answers\/\" target=\"_blank\" rel=\"noopener\">Python Advanced Interview Questions and Answers<\/a><\/strong><\/td>\n<\/tr>\n<tr>\n<td data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;Kerala PSC VFA Application Form&quot;}\" data-sheets-hyperlink=\"https:\/\/entri.app\/blog\/kerala-psc-vfa-apply-online\/\"><strong><a class=\"in-cell-link\" href=\"https:\/\/entri.app\/blog\/python-online-course\/\" target=\"_blank\" rel=\"noopener\">Best Online Python Course with Certificate<\/a><\/strong><\/td>\n<td data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;Kerala PSC VFA Study Materials&quot;}\" data-sheets-hyperlink=\"https:\/\/entri.app\/blog\/kerala-psc-vfa-study-material\/\"><strong><a class=\"in-cell-link\" href=\"https:\/\/entri.app\/blog\/type-conversion-in-python\/\" target=\"_blank\" rel=\"noopener\">What is Type Conversion in Python?<\/a><\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Python is a multi-paradigm programming language. It supports different programming approaches. One of the popular approaches to solve a programming problem is by creating objects. This is known as Object-Oriented Programming (OOP). An object has two characteristics: attributes behavior The concept of OOP in Python focuses on creating reusable code. In Python, object-oriented Programming (OOPs) [&hellip;]<\/p>\n","protected":false},"author":111,"featured_media":25530413,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[802,1888],"tags":[],"class_list":["post-25530359","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articles","category-python-programming"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Object Oriented Programming Python: An Overview - Entri Blog<\/title>\n<meta name=\"description\" content=\"Object Oriented Programming Python: An Overview\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Object Oriented Programming Python: An Overview - Entri Blog\" \/>\n<meta property=\"og:description\" content=\"Object Oriented Programming Python: An Overview\" \/>\n<meta property=\"og:url\" content=\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/\" \/>\n<meta property=\"og:site_name\" content=\"Entri Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/entri.me\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-06-26T11:49:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-04-28T06:34:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/Object-Oriented-Programming-Python-An-Overview.png\" \/>\n\t<meta property=\"og:image:width\" content=\"820\" \/>\n\t<meta property=\"og:image:height\" content=\"615\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Feeba Mahin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@entri_app\" \/>\n<meta name=\"twitter:site\" content=\"@entri_app\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Feeba Mahin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/\"},\"author\":{\"name\":\"Feeba Mahin\",\"@id\":\"https:\/\/entri.app\/blog\/#\/schema\/person\/f036dab84abae3dcc9390a1110d95d36\"},\"headline\":\"Object Oriented Programming Python: An Overview\",\"datePublished\":\"2022-06-26T11:49:57+00:00\",\"dateModified\":\"2023-04-28T06:34:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/\"},\"wordCount\":2079,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/entri.app\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/Object-Oriented-Programming-Python-An-Overview.png\",\"articleSection\":[\"Articles\",\"Python Programming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/\",\"url\":\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/\",\"name\":\"Object Oriented Programming Python: An Overview - Entri Blog\",\"isPartOf\":{\"@id\":\"https:\/\/entri.app\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/Object-Oriented-Programming-Python-An-Overview.png\",\"datePublished\":\"2022-06-26T11:49:57+00:00\",\"dateModified\":\"2023-04-28T06:34:56+00:00\",\"description\":\"Object Oriented Programming Python: An Overview\",\"breadcrumb\":{\"@id\":\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#primaryimage\",\"url\":\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/Object-Oriented-Programming-Python-An-Overview.png\",\"contentUrl\":\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/Object-Oriented-Programming-Python-An-Overview.png\",\"width\":820,\"height\":615,\"caption\":\"Object Oriented Programming Python An Overview\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/entri.app\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python Programming\",\"item\":\"https:\/\/entri.app\/blog\/category\/python-programming\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Object Oriented Programming Python: An Overview\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/entri.app\/blog\/#website\",\"url\":\"https:\/\/entri.app\/blog\/\",\"name\":\"Entri Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/entri.app\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/entri.app\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/entri.app\/blog\/#organization\",\"name\":\"Entri App\",\"url\":\"https:\/\/entri.app\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/entri.app\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2019\/10\/Entri-Logo-1.png\",\"contentUrl\":\"https:\/\/entri.app\/blog\/wp-content\/uploads\/2019\/10\/Entri-Logo-1.png\",\"width\":989,\"height\":446,\"caption\":\"Entri App\"},\"image\":{\"@id\":\"https:\/\/entri.app\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/entri.me\/\",\"https:\/\/x.com\/entri_app\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/entri.app\/blog\/#\/schema\/person\/f036dab84abae3dcc9390a1110d95d36\",\"name\":\"Feeba Mahin\",\"url\":\"https:\/\/entri.app\/blog\/author\/feeba123\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Object Oriented Programming Python: An Overview - Entri Blog","description":"Object Oriented Programming Python: An Overview","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/","og_locale":"en_US","og_type":"article","og_title":"Object Oriented Programming Python: An Overview - Entri Blog","og_description":"Object Oriented Programming Python: An Overview","og_url":"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/","og_site_name":"Entri Blog","article_publisher":"https:\/\/www.facebook.com\/entri.me\/","article_published_time":"2022-06-26T11:49:57+00:00","article_modified_time":"2023-04-28T06:34:56+00:00","og_image":[{"width":820,"height":615,"url":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/Object-Oriented-Programming-Python-An-Overview.png","type":"image\/png"}],"author":"Feeba Mahin","twitter_card":"summary_large_image","twitter_creator":"@entri_app","twitter_site":"@entri_app","twitter_misc":{"Written by":"Feeba Mahin","Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#article","isPartOf":{"@id":"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/"},"author":{"name":"Feeba Mahin","@id":"https:\/\/entri.app\/blog\/#\/schema\/person\/f036dab84abae3dcc9390a1110d95d36"},"headline":"Object Oriented Programming Python: An Overview","datePublished":"2022-06-26T11:49:57+00:00","dateModified":"2023-04-28T06:34:56+00:00","mainEntityOfPage":{"@id":"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/"},"wordCount":2079,"commentCount":0,"publisher":{"@id":"https:\/\/entri.app\/blog\/#organization"},"image":{"@id":"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#primaryimage"},"thumbnailUrl":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/Object-Oriented-Programming-Python-An-Overview.png","articleSection":["Articles","Python Programming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/","url":"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/","name":"Object Oriented Programming Python: An Overview - Entri Blog","isPartOf":{"@id":"https:\/\/entri.app\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#primaryimage"},"image":{"@id":"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#primaryimage"},"thumbnailUrl":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/Object-Oriented-Programming-Python-An-Overview.png","datePublished":"2022-06-26T11:49:57+00:00","dateModified":"2023-04-28T06:34:56+00:00","description":"Object Oriented Programming Python: An Overview","breadcrumb":{"@id":"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#primaryimage","url":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/Object-Oriented-Programming-Python-An-Overview.png","contentUrl":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2022\/06\/Object-Oriented-Programming-Python-An-Overview.png","width":820,"height":615,"caption":"Object Oriented Programming Python An Overview"},{"@type":"BreadcrumbList","@id":"https:\/\/entri.app\/blog\/object-oriented-programming-python-an-overview\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/entri.app\/blog\/"},{"@type":"ListItem","position":2,"name":"Python Programming","item":"https:\/\/entri.app\/blog\/category\/python-programming\/"},{"@type":"ListItem","position":3,"name":"Object Oriented Programming Python: An Overview"}]},{"@type":"WebSite","@id":"https:\/\/entri.app\/blog\/#website","url":"https:\/\/entri.app\/blog\/","name":"Entri Blog","description":"","publisher":{"@id":"https:\/\/entri.app\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/entri.app\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/entri.app\/blog\/#organization","name":"Entri App","url":"https:\/\/entri.app\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/entri.app\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2019\/10\/Entri-Logo-1.png","contentUrl":"https:\/\/entri.app\/blog\/wp-content\/uploads\/2019\/10\/Entri-Logo-1.png","width":989,"height":446,"caption":"Entri App"},"image":{"@id":"https:\/\/entri.app\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/entri.me\/","https:\/\/x.com\/entri_app"]},{"@type":"Person","@id":"https:\/\/entri.app\/blog\/#\/schema\/person\/f036dab84abae3dcc9390a1110d95d36","name":"Feeba Mahin","url":"https:\/\/entri.app\/blog\/author\/feeba123\/"}]}},"_links":{"self":[{"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/posts\/25530359","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/users\/111"}],"replies":[{"embeddable":true,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/comments?post=25530359"}],"version-history":[{"count":10,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/posts\/25530359\/revisions"}],"predecessor-version":[{"id":25559374,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/posts\/25530359\/revisions\/25559374"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/media\/25530413"}],"wp:attachment":[{"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/media?parent=25530359"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/categories?post=25530359"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/entri.app\/blog\/wp-json\/wp\/v2\/tags?post=25530359"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}