Introducción a la programación orientada a objetos en Python
George Boorman
Curriculum Manager, DataCamp
self como primer argumentoself.___class MyClass: # definición de función en la clase # el primer argumento es self def my_method1(self, other_args...): # haz cosas aquídef my_method2(self, my_attr): # atributo creado por asignación self.my_attr = my_attr ...
__init__() se llama cada vez que se crea un objeto__methodname__class Customer:
def __init__(self, name):
# Crea el atributo .name y asígnalo al parámetro name
self.name = name
print("The __init__ method was called")
# __init__ se llama implícitamente
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 creado obj.my_method1(val1) # attr2 creado obj.my_method2(val2)
class MyClass: def __init__(self, attr1, attr2): self.attr1 = attr1 self.attr2 = attr2 ...# Se crean todos los atributos obj = MyClass(val1, val2)
class Customer: # Añade el argumento balance def __init__(self, name, balance):self.name = name # Añade el atributo balance self.balance = balance print("The __init__ method was called")
# __init__ se llama
cust = Customer("Lara de Silva", 1000)
print(cust.name)
print(cust.balance)
The __init__ method was called
Lara de Silva
1000
class Customer:
# Define un valor por defecto para balance
def __init__(self, name, balance=0):
self.name = name
# Asigna el nuevo atributo
self.balance = balance
print("The __init__ method was called")
# No especifiques balance explícitamente cust = Customer("Lara de Silva")print(cust.name) # El atributo balance se crea igualmente print(cust.balance)
The __init__ method was called
Lara de Silva
0
__init__()__init__()CamelCase para clases, lower_snake_case para funciones y atributos
__init__()CamelCase para clase, lower_snake_case para funciones y atributos
self como selfclass MyClass:
# Esto funciona, pero no se recomienda
def my_method(george, attr):
george.attr = attr
__init__()CamelCase para clase, lower_snake_case para funciones y atributos
self es selfclass MyClass:
"""Esta clase no hace nada"""
pass
Introducción a la programación orientada a objetos en Python