Sto scrivendo uno script python che mi piacerebbe essere in grado sia di chiamare dalla riga di comando che di importare come funzione di libreria. Idealmente le opzioni della riga di comando e la funzione dovrebbero utilizzare lo stesso insieme di valori predefiniti. Qual è il modo migliore per consentirmi di riutilizzare un singolo set di valori predefiniti in entrambe le posizioni?Python optparse defaults vs default di funzione
Ecco il codice corrente con valori di default duplicati.
from optparse import OptionParser
def do_stuff(opt1="a", opt2="b", opt3="c"):
print opt1, opt2, opt3
if __name__ == "__main__":
parser = OptionParser()
parser.add_option("--opt1", default="a")
parser.add_option("--opt2", default="b")
parser.add_option("--opt3", default="c")
#parser.set_defaults(opt1="a")
options, args = parser.parse_args()
do_stuff(*args, **vars(options))