danial soleimany
object-oriented
1-16
programming
let's talk about
OOP in python
danial soleimany
Let's 2-16
start
Classes/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.
danial soleimany
3-16
Create a Class
Create a class named "Person", with a
property named "favorite":
ex.
class Person:
favorite = "Programming"
danial soleimany
4-16
Create Object
Now we can use the class named Person
to create objects
# Create an object named p1, and print the value of "favorite"
ex.
p1 = Person()
print(p1.favorite)
output
'Programming'
danial soleimany
great 5-16
job!
The __init__() Function
The examples above are classes and
objects in their simplest form, and are
not really useful in real life applications.
To understand the meaning of classes we
have to understand the built-in __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 to do when the object
is being created.
danial soleimany
6-16
selfie?
The self Parameter
The self parameter is a reference to the
current instance of the class, and is
used to access variables that belongs 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
danial soleimany
7-16
# Create a class named Person, use the __init__() function to assign
values for name and age.
ex.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("Danial", 23)
print(p1.name)
print(p1.age)
output
'Danial'
23
Note: The __init__() function is called automatically every time the
class is being used to create a new object.
danial soleimany
wanna 8-16
more?
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.
danial soleimany
9-16
# The string representation of an object WITHOUT the __str__() function
ex.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("Danial", 23)
print(p1)
output
<__main__.Person object at 0x0000022CCF3B7D60>
danial soleimany
10-16
# The string representation of an object WITH the __str__() function
ex 2.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"{self.name}, {self.age}"
p1 = Person("Danial", 23)
print(p1)
output
Danial, 23
danial soleimany
easy!
11-16
Object Methods
Objects can also contain methods.
Methods in objects are functions that
belong to the object.
Let's create a method in the
Person class!
danial soleimany
12-16
# Insert a function that prints a greeting, and execute it on the p1 object
ex
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("Danial", 23)
p1.myfunc()
output
'Hello my name is Danial'
Note: The self parameter is a reference to the current instance of the
class, and is used to access variables that belong to the class.
danial soleimany
13-16
# Use the words mysillyobject and abc instead of self
ex 2.
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("Danial", 23)
p1.myfunc()
output
'Hello my name is Danial'
danial soleimany
haha!
14-16
Modify Object Properties
p1.age = 40
print(p1.age)
p1.name = "Jack"
print(p1.name)
output
40 # age value changed from 23 to 40
'Jack' # name value changed from 'Danial' to 'Jack'
danial soleimany
Delete Object Properties 15-16
# You can delete properties on objects by using the
del keyword
del p1.age
print(p1.age)
output AttributeError: 'Person' object has no attribute 'age'
Delete Objects
# You can delete objects by using the del keyword
del p1
print(p1)
output NameError: name 'p1' is not defined
danial soleimany
16-16
follow
for more