Introductie tot objectgeoriënteerd programmeren in Python
George Boorman
Curriculum Manager, DataCamp
self als eerste argumentself.___class MyClass: # functiedefinitie in class # eerste argument is self def my_method1(self, other_args...): # doe hier ietsdef my_method2(self, my_attr): # attribuut gemaakt via toekenning self.my_attr = my_attr ...
__init__() wordt elke keer aangeroepen als er een object wordt gemaakt__methodname__-syntaxisclass Customer:
def __init__(self, name):
# Maak het attribuut .name en zet het op de parameter name
self.name = name
print("The __init__ method was called")
# __init__ wordt impliciet aangeroepen
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 gemaakt obj.my_method1(val1) # attr2 gemaakt obj.my_method2(val2)
class MyClass: def __init__(self, attr1, attr2): self.attr1 = attr1 self.attr2 = attr2 ...# Alle attributen worden gemaakt obj = MyClass(val1, val2)
class Customer: # Voeg balance-argument toe def __init__(self, name, balance):self.name = name # Voeg het attribuut balance toe self.balance = balance print("The __init__ method was called")
# __init__ wordt aangeroepen
cust = Customer("Lara de Silva", 1000)
print(cust.name)
print(cust.balance)
The __init__ method was called
Lara de Silva
1000
class Customer:
# Stel een standaardwaarde in voor balance
def __init__(self, name, balance=0):
self.name = name
# Wijs het nieuwe attribuut toe
self.balance = balance
print("The __init__ method was called")
# Geef balance niet expliciet op cust = Customer("Lara de Silva")print(cust.name) # Het attribuut balance wordt toch gemaakt print(cust.balance)
The __init__ method was called
Lara de Silva
0
__init__()__init__()CamelCase voor classes, lower_snake_case voor functies en attributen
__init__()CamelCase voor class, lower_snake_case voor functies en attributen
self gewoon self zijnclass MyClass:
# Dit werkt maar is niet aan te raden
def my_method(george, attr):
george.attr = attr
__init__()CamelCase voor class, lower_snake_case voor functies en attributen
self is selfclass MyClass:
"""Deze class doet niets"""
pass
Introductie tot objectgeoriënteerd programmeren in Python