es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Alguien podría explicarme qué significa este “…..: ” entre los parámetros de una función en Python?

Sé que en Python hay un singleton llamado ‘Ellipsis’, pero me parece que hay un significado completamente diferente entre los parámetros dentro de una función. He buscado en muchas otras fuentes y libros en internet, pero no encuentro la respuesta. [1]

Por ejemplo, si escribo una función, compilará y tampoco se requieren espacios. ¿Por qué?

import pandas as pd
import numpy as np
frame = pd.DataFrame(np.arange(8).reshape((2, 4)),
                      index=['three', 'one'],
                      columns=['d', 'a', 'b', 'c'])

Si pongo un espacio antes de los puntos suspensivos (…), no compilará.

Pero esto funciona bien. ¿Por qué?

frame = pd.DataFrame(np.arange(8).reshape((2, 4)),
                      index=['three', 'one'],
                      columns=['d', 'a', 'b', 'c'])

[1]: Ver imagen

Ver imagen

Tags:  , ,

Answer

  1. Avatar for davy.ai

    La palabra clave singleton Ellipsis en Python representa un número indefinido de argumentos en una segmento. Sin embargo, en el contexto del código proporcionado, el ... se utiliza como un indicador de continuación dentro de la llamada a la función pd.DataFrame(), permitiendo al usuario escribir un parámetro en varias líneas sin necesidad de agregar paréntesis o barras diagonales para la continuación de línea.

    La razón por la cual el primer ejemplo no se compila cuando se agrega un espacio es porque el indicador de continuación debe comenzar al inicio de la línea, sin ningún espacio en blanco anterior. Si se coloca un espacio antes del ..., se invalida el indicador y se produce un error de sintaxis.

    El segundo ejemplo con la indentación adicional funciona porque el indicador comienza después de la indentación, permitiendo que el parámetro continúe en varias líneas.

Comments are closed.