Python Classes and Objects

The Python classes and objects in python go in handy because a class serves as a blueprint on which an object is formed. Picture this, in reality, you go to an architect to sketch a blueprint for a structure building. The sketches structure or blueprint is the class and the erected structure is the object in python. However, as you can build many houses using a blueprint sketch, you can as well create many objects using a class in python. This page is dedicated to providing you with complete knowledge of the Python classes/Object

At the end of this page, you’ll be familiarized with the following:

  •  Python Class and Object
  • Creating python Class
  • Creating Python Objects
  • The Python Self parameter
  • Constructors in Python
  • Deleting attributes and objects in Python

You’ll be good to implement what you’ve learned after this page.

Python Classes and Objects

As stated earlier, a Python class can be compared to a blueprint on which python objects are formed. On the other hand, an object is a house built on a blueprint. In python language, an object is the collection of data or variables and functions. However, because python is an object-oriented programming language. Meaning that it focuses on objects rather than procedures.

In a relationship, an object is referred to as an instance of a class and the process of creating an object is called instantiation.

For a clear python class definition, implement the syntax:

class MyNewClass:

    ”’This is a docstring. I have created a new class”’

    pass

The docstring is not mandatory, however, it’s highly recommended.

An important point to always remember about Python objects:

  • State: It is identified by the attributes of an object and it features the properties of an object.
  • Behaviors: it’s identified by the methods of an object. it reflects the response of an object to other objects
  • Identity: it gives an object a name it also enables an object to inter-relate with others.

Important points to remember in Class

  • Classes are derived by the class keyword
  • Attributes are class variables
  • You can access the attribute of a class by using the dot(.) Operator

Creating Python Class

You create a python class by implementing the keyword class, with the syntax MyNewClass:

    ”’This is a docstring. I have created a new class”’

    pass. The attributes of a class can be either data or function. Progressively,  a new namespace where all the attributes are defined is created in a class.

The _doc_ is a special attribute that gives you the docstring of the class that is to be operated on. It’s good to note that a new object is created with the same class name once a class is created which makes it possible for easy access and instantiation.

Example:

Python Input

class Person:
    "This is a person class"
    age = 10
    def greet(self):
        print('Hello')

# Output: 10

print(Person.age)

# Output: <function Person.greet>

print(Person.greet)

# Output: "This is a person class"

print(Person.__doc__)

Output:

10
<function Person.greet>
This is a person class

Creating Python Object

An object is an instance of a class. When an object of a class is created it means that that class is instantiated. The object created shares the same attributes as a class. However, some attribute values are unique to the object only. Creating an object is similar to a function call. To access the attribute (data or methods) of an object, you should use the object’s name prefix.

Example:

Python Input:

class Person:
    "This is a person class"
    age = 10
    def greet(self):
        print('Hello')
# create a new object of the Person class
harry = Person()

# Output: <function Person.greet>

print(Person.greet)

# Output: <bound method Person.greet of <__main__.Person object>>

print(harry.greet)

# Calling object's greet() method

# Output: Hello

harry.greet()

Output:

<function Person.greet>
<bound method Person.greet of <__main__.Person object>>
Hello

Note that in a class, the object itself must be the first argument of the function which is generally called self.

The Python Self Parameter

The Python self. parameter is an explicit convention used to represent the object(instance) of a class. It’s a keyword that works to enable you to access the attributes and methods of a class in python. The focal point of the self. parameter is that it is always referencing the current object. Also, it substitutes the use of the “@” syntax in python to refer to object attributes.

The reasons for the self are held to the fact that python does not use a local variable when it reads the self.name, etc rather it uses a method or instance.

The next reason is its explicitness, you don’t need any special syntax when you explicitly call a method. And finally, Python will be cleared whether to assign an object (instance) variable or a local variable.

Click here to know more about the self parameter

Example

Python Input

# a program to prove that self and object are referring to the same object
class check:
    def __init__(self):
        print("Address of self = ",id(self))
obj = check()
print("Address of class object = ",id(obj))
# this code is Contributed by Samyak Jain

Output:


Address of self =  209
Address of class object =  209

Constructors In Python

Constructors are used to instantiate an object. This is achieved by assigning values to members of a class when an object is created. The constructor is represented by the __init__() method which is always called when an object is created. There are two types of constructors in python which are:

  • Default constructor: This type of constructor has only one argument, and it doesn’t accept any arguments.
  • Parameterized constructor: This is a constructor with parameters. This constructor values its first argument as a reference to the object of the class called self. This type of constructor accepts explicit arguments from the user.

The syntax for the Python constructor is def __init__(self):

    # body of the constructor.

Example:

Python Input

# A Sample class with init method
class Person:
    # init method or constructor
    def __init__(self, name):
        self.name = name
    # Sample Method
    def say_hi(self):
        print('Hello, my name is', self.name)
p = Person('Simon')
p.say_hi()

Output:


Hello, my name is Simon

Deleting Attributes and Objects in Python

Python enables you to delete any attributes of an object at will with the del statement. Extensively, you can delete the whole object by the same del statement

Example: deleting an attribute with the del statement

Python Input

class Person:
  def __init__(self, name, age):
    self.name = name
    self.age = age
  def myfunc(self):
    print("Hello my name is " + self.name)
p1 = Person("Simon", 20)
del p1.age
print(p1.age)

Output:

Traceback (most recent call last):
  File https://extendsclass.com/lib/Brython-3.8.9/www/src/Lib/site-packages/editor.py, line 116, in run
    exec(src, ns)
  File <string>, line 12, in <module>
AttributeError: 'Person' object has no attribute 'age'

You have the error report because the p1.age was selected but not the entire object.

Example 2: deleting the entire object using the del statement

Python Input

class Person:
  def __init__(self, name, age):
    self.name = name
    self.age = age
  def myfunc(self):
    print("Hello my name is " + self.name)
p1 = Person("Simon", 20)
del p1
print(p1)

Output:


Traceback (most recent call last):
  File https://extendsclass.com/lib/Brython-3.8.9/www/src/Lib/site-packages/editor.py, line 116, in run
    exec(src, ns)
  File <string>, line 13, in <module>
Exception: <Javascript TypeError>: Cannot read property '$nat' of undefined

Summary

Always remember that:

Python class can be compared to a blueprint on which python objects are formed. On the other hand, an object is a house built on the blueprint

In a relationship, an object is referred to as an instance of a class and the process of creating an object is called instantiation.

An important point to always remember about Python objects:

  • State: It is identified by the attributes of an object and it features the properties of an object.
  • Behaviors: it’s identified by the methods of an object. it reflects the response of an object to other objects
  • Identity: it gives an object a name it also enables an object to interrelate with others.

Important points to remember in Class

  • Classes are derived by the class keyword
  • Attributes are class variables
  • You can access the attribute of a class by using the dot(.) Operator

At the end of this page, you are familiarized with the following:

  •  Python Class and Object
  • Creating python Class
  • Creating Python Objects
  • The Python Self parameter
  • Constructors in Python
  • Deleting attributes and objects in Python

Go on, give it all the effort needed to be good at it. Be sure to put all your knowledge to work by practice. For a helping hand see the Python Tutorials. Good luck coding!

Pramod Kumar Yadav is from Janakpur Dham, Nepal. He was born on December 23, 1994, and has one elder brother and two elder sisters. He completed his education at various schools and colleges in Nepal and completed a degree in Computer Science Engineering from MITS in Andhra Pradesh, India. Pramod has worked as the owner of RC Educational Foundation Pvt Ltd, a teacher, and an Educational Consultant, and is currently working as an Engineer and Digital Marketer.



Leave a Comment