Tengo un script que lee un número variable de campos de un archivo de entrada y los paso a una función como argumentos. Por ejemplo:
Archivo 1 con campos: A, B y C =>
function(A,B,C)
- ¿Cómo Python devuelve múltiples valores de una función?
- Declara la función al final del archivo en Python
- ¿Cuál es el propósito del asterisco desnudo en los argumentos de función?
- Pase dict con palabras clave que no sean de cadena para funcionar en kwargs
- Imprimir el nombre del argumento escrito en funciones en Python
Archivo N con campos: A, B, C y D =>
function(A,B,C,D)
Mi pregunta es: ¿Cómo alimentar la función con el número correcto de campos de acuerdo con el archivo de entrada?
PD: Por supuesto, la función acepta cualquier número de argumentos.
Lea los campos (argumentos) en una lista y luego use el desempaquetado de argumentos :
function(*fields)
A continuación se muestra una demostración:
>>> def func(*args): ... return args ... >>> fields = ["A", "B", "C"] >>> func(*fields) ('A', 'B', 'C') >>> fields = ["A", "B", "C", "D"] >>> func(*fields) ('A', 'B', 'C', 'D') >>>
Deberías usar args y kwargs así:
def foo(*args, **kwargs): pass
De esta manera puede obtener parámetros posicionales y con nombre, args debe ser una lista de valores, mantener los argumentos posicionales, kwargs debe ser un diccionario, sus claves el nombre del argumento con su valor