Thursday, July 9, 2020
Python Classes And Objects
Python Classes And Objects Python Classes And Objects Object Oriented Programming Back Home Categories Online Courses Mock Interviews Webinars NEW Community Write for Us Categories Artificial Intelligence AI vs Machine Learning vs Deep LearningMachine Learning AlgorithmsArtificial Intelligence TutorialWhat is Deep LearningDeep Learning TutorialInstall TensorFlowDeep Learning with PythonBackpropagationTensorFlow TutorialConvolutional Neural Network TutorialVIEW ALL BI and Visualization What is TableauTableau TutorialTableau Interview QuestionsWhat is InformaticaInformatica Interview QuestionsPower BI TutorialPower BI Interview QuestionsOLTP vs OLAPQlikView TutorialAdvanced Excel Formulas TutorialVIEW ALL Big Data What is HadoopHadoop ArchitectureHadoop TutorialHadoop Interview QuestionsHadoop EcosystemData Science vs Big Data vs Data AnalyticsWhat is Big DataMapReduce TutorialPig TutorialSpark TutorialSpark Interview QuestionsBig Data TutorialHive TutorialVIEW ALL Blockchain Blockchain TutorialWhat is BlockchainHyperledger FabricWhat Is EthereumEthereum TutorialB lockchain ApplicationsSolidity TutorialBlockchain ProgrammingHow Blockchain WorksVIEW ALL Cloud Computing What is AWSAWS TutorialAWS CertificationAzure Interview QuestionsAzure TutorialWhat Is Cloud ComputingWhat Is SalesforceIoT TutorialSalesforce TutorialSalesforce Interview QuestionsVIEW ALL Cyber Security Cloud SecurityWhat is CryptographyNmap TutorialSQL Injection AttacksHow To Install Kali LinuxHow to become an Ethical Hacker?Footprinting in Ethical HackingNetwork Scanning for Ethical HackingARP SpoofingApplication SecurityVIEW ALL Data Science Python Pandas TutorialWhat is Machine LearningMachine Learning TutorialMachine Learning ProjectsMachine Learning Interview QuestionsWhat Is Data ScienceSAS TutorialR TutorialData Science ProjectsHow to become a data scientistData Science Interview QuestionsData Scientist SalaryVIEW ALL Data Warehousing and ETL What is Data WarehouseDimension Table in Data WarehousingData Warehousing Interview QuestionsData warehouse architectureTalend T utorialTalend ETL ToolTalend Interview QuestionsFact Table and its TypesInformatica TransformationsInformatica TutorialVIEW ALL Databases What is MySQLMySQL Data TypesSQL JoinsSQL Data TypesWhat is MongoDBMongoDB Interview QuestionsMySQL TutorialSQL Interview QuestionsSQL CommandsMySQL Interview QuestionsVIEW ALL DevOps What is DevOpsDevOps vs AgileDevOps ToolsDevOps TutorialHow To Become A DevOps EngineerDevOps Interview QuestionsWhat Is DockerDocker TutorialDocker Interview QuestionsWhat Is ChefWhat Is KubernetesKubernetes TutorialVIEW ALL Front End Web Development What is JavaScript â" All You Need To Know About JavaScriptJavaScript TutorialJavaScript Interview QuestionsJavaScript FrameworksAngular TutorialAngular Interview QuestionsWhat is REST API?React TutorialReact vs AngularjQuery TutorialNode TutorialReact Interview QuestionsVIEW ALL Mobile Development Android TutorialAndroid Interview QuestionsAndroid ArchitectureAndroid SQLite DatabaseProgramming Object Oriented Program ming Last updated on Nov 26,2019 34.1K Views Aayushi Johari A technophile who likes writing about different technologies and spreading knowledge. A technophile who likes writing about different technologies and spreading knowledge.3 Comments Bookmark 2 / 5 Blog from Python OOPs Become a Certified Professional After Stack Overflow predicted that by 2019, Python will outstrip other languages in terms of active developers, the demand for Certified Python Developers is only growing.Python follows object-oriented programming paradigm. It deals with declaring python classes, creating objects from them andinteracting with the users. In an object-oriented language, the programis split into self-contained objectsor you can say into several mini-programs. Each object is representing a different part of the application which can communicate among themselves. In this python class blog, you will understand each aspect of classes and objects in the following sequence:What is a Python Class ?Methods and Attributes in a classWhat are Objects?OOPs Concepts:InheritancePolymorphismAbstractionLets get started.:-)What is a Python Class?A class in python is the blueprint from which specific objects are created. It lets you structure your software in a particular way. Here comes a question how? Classes allow us to logically group our data and function in a way that it is easy to reuse and a way to build upon if need to be. Consider the below image.In the first image (A), it represents a blueprint of a house that can be considered as Class. With the same blueprint, we can create several houses and these can be considered as Objects. Using a class, you can add consistency to your programs so that they can be used in cleaner and efficient ways.The attributes are data members (class variables and instance variables) and methods which are accessed via dot notation.Class variable is a variable that is shared by all the different objects/instances of a class.Instance variables are va riables which are unique to each instance.Itis defined inside a method and belongs only to the current instance of a class.Methods are also called asfunctions which aredefined in a class and describes the behaviour of an object.Now, let us move ahead and see how it works in PyCharm. To get started, first have a look at the syntax of a python class.Syntax: class Class_name: statement-1 . . statement-N Here, the classstatement creates a new class definition. The name of the class immediately follows the keyword classin python which is followed by a colon. Tocreate a class in python, consider the below example: class employee: pass #no attributes and methods emp_1=employee() emp_2=employee() #instance variable can be created manually emp_1.first='aayushi' emp_1.last='Johari' emp_1.email='aayushi@edureka.co' emp_1.pay=10000 emp_2.first='test' emp_2.last='abc' emp_2.email='test@company.com' emp_2.pay=10000 print(emp_1.email) print(emp_2.email) Output aayushi@edureka.co test@company.comNow, what if wedont want to manually set these variables. You will see a lot of code and also it is prone to error. So tomake it automatic, we can use init method. For that, lets understand what exactly are methods and attributes in a python class.Methods and Attributes in a Python ClassNow creating a class is incomplete without some functionality. So functionalities can be defined by setting various attributes which acts as a container for data and functions related to those attributes. Functions in python are also called as Methods. Talking about the init method, it is a special function which gets called whenever a new object of that class is instantiated. You can think of it as initialize method or you can consider this as constructors if youre coming from any another object-oriented programming background such as C++, Java etc. Now when we set a method inside a class, they receive instance automatically.Lets go ahead with python class and accept the first name, l ast name and salary using this method. class employee: def __init__(self, first, last, sal): self.fname=first self.lname=last self.sal=sal self.email=first + '.' + last + '@company.com' emp_1=employee('aayushi','johari',350000) emp_2=employee('test','test',100000) print(emp_1.email) print(emp_2.email) Now within our init method, we have set these instance variables (self, first, last, sal). Self is the instance which means whenever we write self.fname=first, it is same as emp_1.first=aayushi.Thenwe have created instances of employee class where we can pass the values specified in the init method. This method takes the instances as arguments. Instead ofdoing it manually, it will be done automatically now.Next, we want the ability to perform some kind of action. For that, wewill add amethodto this class. Suppose I want the functionality to display the full name of the employee. So lets us implement this practically. class employee: def __init__(self, first, last, sal): self.fname=first self.lname=last self.sal=sal self.email=first + '.' + last + '@company.com' def fullname(self): return '{}{}'.format(self.fname,self.lname) emp_1=employee('aayushi','johari',350000) emp_2=employee('test','test',100000) print(emp_1.email) print(emp_2.email) print(emp_1.fullname()) print(emp_2.fullname()) Output aayushi.johari@company.com test.test@company.com aayushijohari testtestAs you can see above, I have created a method called full name within a class. So each method inside a python class automatically takes the instance as the first argument. Now within this method, I have writtenthe logic to print full name and return this instead of emp_1 first name and last name. Next, I have used self so that it will work with all the instances. Therefore to print this every time, we use a method.Moving ahead with Python classes, there are variables whichare shared among all the instances of a class. These are called as class variables. Instance variables can be unique for each instance like names, email, sal etc. Complicated? Lets understand this with an example. Refer the code below to find out the annual rise in the salary. class employee: perc_raise =1.05 def __init__(self, first, last, sal): self.fname=first self.lname=last self.sal=sal self.email=first + '.' + last + '@company.com' def fullname(self): return '{}{}'.format(self.fname,self.lname) def apply_raise(self): self.sal=int(self.sal*1.05) emp_1=employee('aayushi','johari',350000) emp_2=employee('test','test',100000) print(emp_1.sal) emp_1.apply_raise() print(emp_1.sal) Output 350000 367500As you can see above, I have printed the salary first and then applied the 1.5% increase. In order to access these class variables, we either need to access them through the class or an instance of the class. Now, lets understand the various attributes in a python class.Attributes in a Python ClassAttributes in Python defines a property of an object, element or a file.There are two types of attributes:Built-in Class Attributes: There are various built-in attributes present inside Python classes. For example _dict_, _doc_, _name _, etc. Let me take the same example where I want to view all the key-value pairs of employee1.For that, you can simply write the below statement which contains the class namespace: print(emp_1.__dict__) After executing it, you will get output such as:{fname: aayushi, lname: johari, sal: 350000, email: aayushi.johari@company.com}Attributes defined by Users:Attributes are created inside the class definition. We can dynamically create new attributes for existing instances of a class. Attributes can be bound to class names as well.Next, we have public, protectedand private attributes. Lets understand them in detail:NamingTypeMeaningNamePublicThese attributes can be freely used inside or outside of a class definition_nameProtectedProtected attributes should not be used outside of the class definition, unless inside of a subclass definition__namePrivateThis kind of attribute is inaccessible and invisible. Its neither possible to read nor to write those attributes, except inside of the class definition itself Next, lets understand the most important component in a python class i.e Objects.What are objects in a Python Class?As we have discussed above, an object can be used to access differe nt attributes. It is used to create an instance of the class. An instance is an object of a class created at run-time. To give you a quick overview, an object basically is everything you see around. For eg: A dog is an object of the animal class, I am an object of the human class. Similarly, there can be different objects to the same phone class.This is quite similar to a function call which we have already discussed.Lets understand this with an example: class MyClass: def func(self): print('Hello') # create a new MyClass ob = MyClass() ob.func() Moving ahead with python class, lets understand the various OOPs concepts.OOPs ConceptsOOPs refers to the Object-Oriented Programming in Python.Well, Python is not completelyobject-oriented as it contains some procedural functions. Now, you must be wondering whatis the difference between a procedural and object-oriented programming. To clear your doubt, in a procedural programming, the entire code is written into one long procedure even though it might containfunctions and subroutines. It is not manageable as both data and logic get mixed together. But when we talk about object-oriented programming, the programis split into self-contained objectsor several mini-programs. Each object is representing a different part of the application which has its own data and logic to communicate among themselves. For example, a website has different objects such as images, videos etc. Object-Oriented programming includes the concept of Python class, object, Inheritance, Polymorphism, Abstraction et c. Lets understand these topics in detail.Python Class: InheritanceInheritance allows us to inherit attributes and methods from the base/parent class. This is useful as we can create sub-classes and get all of the functionality from our parent class. Then we can overwrite and add new functionalities without affecting the parent class. Lets understand the concept of parent class and child class with an example.As we can see in the image, a child inherits the properties from the father. Similarly, in python, there are two classes:1. Parent class ( Super or Base class)2.Child class (Subclass or Derived class)A class which inherits the properties is known as Child Class whereas a class whose properties are inherited is known as Parent class.Inheritance refers to the ability to create Sub-classes that contain specializations of their parents. It is further divided into four types namely single, multilevel, hierarchical and multiple inheritances. Refer the below image to get a better unde rstanding. Lets go ahead with python class andunderstand how inheritance is useful.Say, I want to create classes for the types of employees. Ill create developers and managers as sub-classes since both developers and managers will have a name, email and salaryand all these functionalities will be there in the employee class. So, instead of copying the code for the subclasses, we can simply reuse the code by inheriting from the employee.class employee: num_employee=0 raise_amount=1.04 def __init__(self, first, last, sal): self.first=first self.last=last self.sal=sal self.email=first + '.' + last + '@company.com' employee.num_employee+=1 def fullname (self): return '{} {}'.format(self.first, self.last) def apply_raise (self): self.sal=int(self.sal * raise_amount) class developer(employee): pass emp_1=developer('aayushi', 'johari', 1000000) print(emp_1.email) Output -aayushi.johari@company.comAs you can see in the above output, all the details of the employee class are available in the developer class.Now what if I want to change the raise_amount for a developer to 10%? lets see how it can be done practically. class employee: num_employee=0 raise_amount=1.04 def __init__(self, first, last, sal): self.first=first self.last=last self.sal=sal self.email=first + '.' + last + '@company.com' employee.num_employee+=1 def fullname (self): return '{} {}'.format(self.first, self.last) def apply_raise (self): self.sal=int(self.sal* raise_amount) class developer(employee): raise_amount = 1.10 emp_1=developer('aayushi', 'johari', 1000000) print(emp_1.raise_amount) Output - 1.1As you can see that it has updated the percentage rise in salary from 4% to 10%.Now if I want to add one more attribute, say a programming language in our init method, but it doesnt exist in our parent class. Is there any solution for that? Yes! we can copy the entire employee logic and do that but it will again increase the code size. So to avoid that, lets consider the below code: class employee: num_employee=0 raise_amount=1.04 def __init__(self, first, last, sal): self.first=first self.last=last self.sal=sal self.email=first + '.' + last + '@company.com' employee.num_employee+=1 def fullname (self): return '{} {}'.format(self.first, self.last) def apply_raise (self): self.sal=int(self.sal* raise_amount) class developer(employee): raise_amount = 1.10 def __init__(self, first, last, sal, prog_lang): super().__init__(first, last, sal) self.prog_lang=prog_lang emp_1=developer('aayushi', 'johari', 1000000, 'python') print(emp_1.prog_lang) Therefore, with just a little bit of code, I have made changes. I haveused super.__init__(first, last, pay) which inherits the properties from the base class.To conclude, inheritance is used to reuse the codeand reduce the complexity of a program.Python Class: PolymorphismPolymorphism in Computer Science is the ability to present the same interface for differing underlying forms.In practical terms, polymorphism means that if class B inherits from class A, it doesnt have to inherit everything about class A, it can do some of the things that class A does differently. It is most commonly used while dealing with inheritance. Python is implicitly polymorphic, it has theability to overload standard operators so that they have appropriate behaviour based on their context.Let us understand with an example: class Animal: def __init__(self,name): self.name=name def talk(self): pass class Dog(Animal): def talk(self): print('Woof') class Cat(Animal): def talk(self): print('MEOW!') c= Cat('kitty') c.talk() d=Dog(Animal) d.talk() Output Meow! WoofNext, let us move to another object-oriented programming concept i.e Abstraction.Python Class: AbstractionAbstractionis used to simplify complex reality by modelling classes appropriate to the problem. Here, we have an abstract class whichcannot be instantiated. This means you cannot create objects or instances for these classes. It can only be used for inheriting certain functionalities which you call as a base class. So you can inherit functionalities but at the same time, you cannot create an instance of this particular class. Lets understand the concept of abstract class with an example below: from abc import ABC, abstractmethod class Employee(ABC): @abstractmethod def calculate_salary(self,sal): pass class Developer(Employee): def calculate_salary(self,sal): finalsalary= sal*1.10 return finalsalary emp_1 = Developer() print(emp_1.calculate_salary(10000)) Output 11000.0As you can see in the above output, we have increased the base salary to 10% i.e. the salary is now 11000. Now, if you actually go on and make an object of class Employee, it throws you an error as python doesnt allow you to create an object of abstract class. But using inheritance, you can actually inherit the properties and perform the respective tasks.So guys, this was all about python classes and objects in a nutshell. We have covered all the basics of Python class, objects and various object-oriented concepts in python, so you can start practicing now. I hope you guys enjoyed reading this blog on Python Class and are clear about each and every aspect that I have discussed above.After python class,I will be coming up with moreblogs on Python for scikit learn library and array. Stay tuned!Got a question for us? Please mention it in the comments section of this Python Class blog and we will get back to you as soon as possible.To get in-depth knowledge of Python along with its various applications, you canenroll herewith our live online training with 24/7 support and lifetime access.Recommended videos for you Web Scraping And Analytics With Python Watch Now Machine Learning With Python Python Machine Learning Tutorial Watch Now Mastering Python : An Excellent tool for Web Scraping and Data Analysis Watch Now Python Classes Python Programming Tutorial Watch Now Python Numpy Tutorial Arrays In Python Watch Now The Whys and Hows of Predictive Modelling-I Watch Now Python Loops While, For and Nested Loops in Python Programming Watch Now 3 Scenarios Where Predictive Analytics is a Must Watch Now Diversity Of Python Programming Watch Now Android Development : Using Android 5.0 Lollipop Watch Now Know The Science Behind Product Recommendation With R Programming Watch Now Python for Big Data Analytics Watch Now Linear Regression With R Watch Now Python Programming Learn Python Programming From Scratch Watch Now Sentiment Analysis In Retail Domain Wa tch Now Python List, Tuple, String, Set And Dictonary Python Sequences Watch Now Introduction to Business Analytics with R Watch Now Application of Clustering in Data Science Using Real-Time Examples Watch Now Business Analytics Decision Tree in R Watch Now The Whys and Hows of Predictive Modeling-II Watch NowRecommended blogs for you Cheat Sheet To Python RegEx With Examples Read Article Python Iterators: What is Iterator in Python and how to use it? Read Article Who can take up Data Science? Read Article Building your first Machine Learning Classifier in Python Read Article 4 Ways To Use R And Hadoop Together Read Article What are Important Advantages and Disadvantages Of Python? Read Article Advantages of Data Science Training Read Article Learn Python Programming One Stop Solution for Beginners Read Article What is KeyError in Python? Dictionary and Handling Them Read Article Top 10 Applications of Machine Learning : Machine Learning Applications in Daily Life Read Article Top 10 Reasons Why You Should Learn Python Read Article Top 65 Data Analyst Interview Questions You Must Prepare In 2020 Read Article Naive Bayes Classifier Read Article Programming With Python Tutorial Read Article The Why And How Of Exploratory Data Analysis In Python Read Article Modeling Techniques in Business Analytics with R Read Article 100+ Data Science Interview Questions You Must Prepare for 2020 Read Article Implementing K-means Clustering on the Crime Dataset Read Article Python Anaconda Tutorial : Everything You Need To Know Read Article Mastering R Is The First Step For A Top-Class Data Science Career Read Article Comments 3 Comments Trending Courses in Data Science Python Certification Training for Data Scienc ...66k Enrolled LearnersWeekend/WeekdayLive Class Reviews 5 (26200)
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.