Python is an object-oriented language. In python everything is object i.e int
, str
, bool
even modules, functions are also objects.
Object oriented programming use objects to create programs, and these objects stores data and behaviours.
Class name in python is preceded with class
keyword followed by a colon (:
). Classes commonly contains data field to store the data and methods for defining behaviors. Also every class in python contains a special method called initializer (also commonly known as constructors), which get invoked automatically every time new object is created.
Let's see an example.
Here we have created a class called Person
which contains one data field called name
and method whoami()
.
All methods in python including some special methods like initializer have first parameter self
. This parameter refers to the object which invokes the method. When you create new object the self
parameter in the __init__
method is automatically set to reference the object you have just created.
Expected Output:
note:
When you call a method you don't need to pass anything to self
parameter, python automatically does that for you behind the scenes.
You can also change the name
data field.
Expected Output:
Although it is a bad practice to give access to your data fields outside the class. We will discuss how to prevent this next.
To hide data fields you need to define private data fields. In python you can create private data field using two leading underscores. You can also define a private method using two leading underscores.
Let's see an example
Expected Output:
Let's try to access __balance
data field outside of class.
Expected Output:
AttributeError: 'BankAccount' object has no attribute '__balance'
As you can see, now the __balance
field is not accessible outside the class.
In next chapter we will learn about operator overloading.
Other Tutorials (Sponsors)
This site generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!