Introduction to Object-Oriented Programming in Python
George Boorman
Curriculum Manager, DataCamp
self
as the first argumentself.___
class MyClass: # function definition in class # first argument is self def my_method1(self, other_args...): # do things here
def my_method2(self, my_attr): # attribute created by assignment self.my_attr = my_attr ...
__init__()
method is called every time an object is created__methodname__
syntaxclass Customer:
def __init__(self, name):
# Create the .name attribute and set it to name parameter
self.name = name
print("The __init__ method was called")
# __init__ is implicitly called
cust = Customer("Lara de Silva")
print(cust.name)
The __init__ method was called
Lara de Silva
class MyClass: def my_method1(self, attr1): self.attr1 = attr1 ... def my_method2(self, attr2): self.attr2 = attr2 ...
obj = MyClass() # attr1 created obj.my_method1(val1) # attr2 created obj.my_method2(val2)
class MyClass: def __init__(self, attr1, attr2): self.attr1 = attr1 self.attr2 = attr2 ...
# All attributes are created obj = MyClass(val1, val2)
class Customer: # Add balance argument def __init__(self, name, balance):
self.name = name # Add the balance attribute self.balance = balance print("The __init__ method was called")
# __init__ is called
cust = Customer("Lara de Silva", 1000)
print(cust.name)
print(cust.balance)
The __init__ method was called
Lara de Silva
1000
class Customer:
# Set a default value for balance
def __init__(self, name, balance=0):
self.name = name
# Assign the new attribute
self.balance = balance
print("The __init__ method was called")
# Don't specify the balance explicitly cust = Customer("Lara de Silva")
print(cust.name) # The balance attribute is created anyway print(cust.balance)
The __init__ method was called
Lara de Silva
0
__init__()
__init__()
CamelCase
for classes, lower_snake_case
for functions and attributes
__init__()
CamelCase
for class, lower_snake_case
for functions and attributes
self
as self
class MyClass:
# This works but isn't recommended
def my_method(george, attr):
george.attr = attr
__init__()
CamelCase
for class, lower_snake_case
for functions and attributes
self
is self
class MyClass:
"""This class does nothing"""
pass
Introduction to Object-Oriented Programming in Python