Argparse - esplicito vs implicito, semplice vs complesso

1

Dato che

Explicit is better than implicit.

Ma anche

Simple is better than complex.

Mi stavo chiedendo quanto sia accettato trasformare codice come questo:

import argparse

def func(a, b):
    return a + b

parser = argparse.ArgumentParser()
parser.add_argument('a')
parser.add_argument('b')
parser.add_argument('c')

args = parser.parse_args()
func(args.a, args.b)

In codice come questo:

import argparse

def func(a, b, **kwargs):
    return a + b

parser = argparse.ArgumentParser()
parser.add_argument('a')
parser.add_argument('b')
parser.add_argument('c')

args = vars(parser.parse_args())
func(**args)

Per evitare di dover scrivere sempre args.a, args.b, args.c. Ovviamente questo diventa rilevante solo quando sono coinvolte molte opzioni, funzioni più complicate e nomi di variabili più lunghi.

    
posta Graipher 07.07.2016 - 10:12
fonte

1 risposta

1

Direi che è molto accettabile. È molto facile visualizzare quale obiettivo finale stai cercando di ottenere con il codice. Ogni volta che chiamate add_argument () e guardate la firma della funzione che state chiamando, potete già vedere gli argomenti, riutilizzando di nuovo il loro nome quando chiamate func () sembra davvero ridondante.

    
risposta data 01.08.2016 - 10:07
fonte

Leggi altre domande sui tag