Python: 'import *' vs execfile
W niektórych moich aplikacjach Django używamsettings_local.py
plik zastępujący ustawienia różne w różnych środowiskach (np. programowanie, testowanie i produkcja). Początkowo użyłem następującego kodu, aby dołączyć jego zawartość dosettings.py
:
try:
from settings_local import *
except ImportError:
sys.stderr.write("The settings_local.py file is missing.\n")
DEBUG=False
Niedawno znalazłemexecfile
funkcja i przełączone na coś takiego:
try:
execfile(path.join(PROJECT_ROOT, "settings_local.py"))
except IOError:
sys.stderr.write("The settings_local.py file is missing.\n"
DEBUG=False
Oba działają zgodnie z przeznaczeniem, ale jestem ciekawy, czy brakuje mi jakichkolwiek poprawek i ogólnie, które podejście jest bardziej zalecane i dlaczego.