Python: 'import *' vs execfile
Em alguns dos meus aplicativos do Django, estou usando umsettings_local.py
arquivo para substituir as configurações que são diferentes em vários ambientes (por exemplo, desenvolvimento, teste e produção). Eu usei originalmente o seguinte código para incluir seu conteúdo nosettings.py
:
try:
from settings_local import *
except ImportError:
sys.stderr.write("The settings_local.py file is missing.\n")
DEBUG=False
Eu encontrei recentemente oexecfile
função e mudou para algo como:
try:
execfile(path.join(PROJECT_ROOT, "settings_local.py"))
except IOError:
sys.stderr.write("The settings_local.py file is missing.\n"
DEBUG=False
Ambos funcionam como planejado, mas estou curioso para saber se estou perdendo algumas dicas e, em geral, qual abordagem é mais recomendada e por quê.