Python Classes and Objects: Creating and Using Classes
Learn about Python's object-oriented programming approach. Discover how to create classes and objects using the class
keyword, and see examples of defining a class and instantiating objects.
Python Classes and Objects
Python is an object-oriented programming language. Almost everything in Python is an object, with its properties and methods. A class is like an object constructor or a "blueprint" for creating objects.
Create a Class
To create a class, use the keyword class
:
Example
class MyClass:
x = 10
Create an Object
Now we can use the class named MyClass
to create objects:
Example
p1 = MyClass()
print(p1.x)
Output
10
The __init__()
Function
All classes have a function called __init__()
, which is always executed when the class is being initiated. Use the __init__()
function to assign values to object properties, or other operations that are necessary when the object is being created:
Example
Create a class named Person, use the __init__() function to assign values for name and age:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("Alice", 25)
print(p1.name)
print(p1.age)
Output
Alice
25
The __str__()
Function
The __str__()
function controls what should be returned when the class object is represented as a string. If the __str__()
function is not set, the string representation of the object is returned:
Example without __str__()
function
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("Alice", 25)
print(p1)
Example with __str__()
function
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"{self.name}({self.age})"
p1 = Person("Alice", 25)
print(p1)
Output
Alice(25)
Object Methods
Objects can also contain methods. Methods in objects are functions that belong to the object. Let us create a method in the Person class:
Example
Insert a function that prints a greeting, and execute it on the p1 object:
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("Alice", 25)
p1.myfunc()
Output
Hello, my name is Alice
The self
Parameter
The self
parameter is a reference to the current instance of the class, and is used to access variables that belong to the class. It does not have to be named self
, you can call it whatever you like, but it has to be the first parameter of any function in the class:
Example
Use the words mysillyobject and abc instead of self:
class Person:
def __init__(mysillyobject, name, age):
mysillyobject.name = name
mysillyobject.age = age
def myfunc(abc):
print("Hello, my name is " + abc.name)
p1 = Person("Alice", 25)
p1.myfunc()
Output
Hello, my name is Alice
Modify Object Properties
You can modify properties on objects like this:
Example
Set the age of p1 to 40:
p1.age = 30
Delete Object Properties
You can delete properties on objects by using the del
keyword:
Example
Delete the age property from the p1 object:
del p1.age
Delete Objects
You can delete objects by using the del
keyword:
Example
Delete the p1 object:
del p1
The pass
Statement
Class definitions cannot be empty, but if you for some reason have a class definition with no content, put in the pass
statement to avoid getting an error:
Example
class Person: pass