2011-11-09 15 views

risposta

19

Il più grande problema che vedo con import config è che non si sa che cosa accadrà quando lo importi. Sì, otterrai una serie di simboli a cui si fa riferimento in modo naturale utilizzando un'interfaccia di stile .. Ma il codice nel file di configurazione può anche fare chissà cosa. Ora, se ti fidi completamente dei tuoi utenti, quindi permettere loro di fare qualsiasi cosa vogliano nel file di configurazione è probabilmente una buona cosa. Tuttavia, se si dispone di quantità sconosciute o se si desidera proteggere gli utenti da se stessi, disporre di un file di configurazione in un formato più tradizionale sarà più sicuro e più sicuro.

+3

Questo è davvero un buon punto che non avevo considerato a causa di tutta la fiducia in me stesso. – jathanism

6

"import config" è molto semplice, flessibile e potente ma, poiché può fare qualsiasi cosa, potrebbe essere pericoloso se config.py non si trova in un luogo sicuro.

3

IMO si tratta di uno stile personale. Hai intenzione di terze parti di modificare la tua configurazione? Se è così, forse ha senso avere uno stile di configurazione più "naturale" a la ConfigParser che non è così tecnico e che non può essere troppo lontano sopra le teste del tuo pubblico di destinazione.

Molti progetti popolari come Fabric e Django utilizzano lo stile di configurazione "nativo" che è essenzialmente solo un modulo Python. Fabry ha fabfile.py e Django ha settings.py. Nel complesso, avrai molta più flessibilità usando un approccio nativo di importazione di un modulo semplicemente perché puoi fare tutto ciò che vuoi in quel file, inclusa la definizione di funzioni, classi, ecc. Perché è solo un altro modulo Python stai importando.

7

Questo completamento dipende dalle esigenze e dagli obiettivi della sceneggiatura. Un modo in realtà non è "migliore", solo diverso. Per una discussione molto dettagliata sulla maggior parte dei pitoni config parser (compresi ConfigParser e config moduli), vedi:

Python Wiki - ConfigParserShootout

Problemi correlati