Métodos a detalle: continuación
Como __init__
es un método, y un método es una función, puedes hacer los mismos trucos con constructores y métodos que con las funciones ordinarias.
El ejemplo en el editor muestra cómo definir un constructor con un valor de argumento predeterminado. Pruébalo.
El código da como salida:
objeto
None
Todo lo que hemos dicho sobre el manejo de los nombres también se aplica a los nombres de métodos, un método cuyo nombre comienza con __
está (parcialmente) oculto.
El ejemplo muestra este efecto:
class conClase:
def visible(self):
print("visible")
def __oculto(self):
print("oculto")
obj = conClase()
obj.visible()
try:
obj.__oculto()
except:
print("fallido")
obj._conClase__oculto()
El código da como salida:
visible
fallido
oculto
Ejecuta el programa y pruébalo.