Argumentos opcionales para un constructor de clase en Python

Vaibhav Vaibhav 21 diciembre 2022
Argumentos opcionales para un constructor de clase en Python

Como sugiere el nombre, un argumento opcional es un argumento para el que no es obligatorio pasar un valor. Para tal argumento, se evalúa un valor predeterminado. Si se pasa algún valor para dicho argumento, el nuevo valor sobrescribe el valor predeterminado.

En este artículo, aprenderemos cómo configurar argumentos opcionales para clases en Python.

Establecer argumentos opcionales para un constructor de clase en Python

Para agregar argumentos opcionales a las clases en Python, debemos asignar algunos valores predeterminados a los argumentos en la firma de la función constructora de la clase. Agregar valores predeterminados es una tarea sencilla. Tenemos que equiparar los argumentos a sus valores predeterminados como x = 3, nombre = "Untitled", etc. Se considerará el valor predeterminado si no se pasan valores para estos argumentos opcionales. Seguir el código de Python representa el concepto discutido anteriormente.

class Point:
    def __init__(self, x, y, z=0):
        self.x = x
        self.y = y
        self.z = z

    def __str__(self):
        return f"X: {self.x}, Y: {self.y}, Z:{self.z}"


print(Point(1, 2))  # Object 1
print(Point(54, 92, 0))  # Object 2
print(Point(99, 26, 100))  # Object 3

Producción :

X: 1, Y: 2, Z:0
X: 54, Y: 92, Z:0
X: 99, Y: 26, Z:100

El constructor de la clase Punto acepta tres argumentos: x, y y z. Aquí z es el argumento opcional porque tiene un valor predeterminado establecido para él. Esto hace que los otros dos argumentos, x e y, sean obligatorios. Para el Objeto 1, no se pasó ningún valor para el argumento z, y a partir de la salida, podemos ver que se consideró el valor predeterminado para z. Y, para el Objeto 3, se pasó 100 para el argumento z, y a partir de la salida, podemos ver que 100 se consideró sobre el valor predeterminado 0.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Artículo relacionado - Python Class