#翻译自《TwoScoops of Django Best Practices For Django 1.8》 1.5小节
正文
在我们99%的工作中,我们应该明确的导入每一个模块:
from django import forms
from django.db import models
不要最下面这样的事:
#不好的例子
from django.forms import *
from django.db.models import *
这么做是为了避免将另一个Python模块所有的内容都被导入并添加到我们当前模块的命名空间内。
如果不这样做,可能会产生不可预测的、有时甚至是灾难性的结果。
让我们看下如下不好的例子。 Django forms 和 Django models库中都有一个叫CharField的类。通过明确的导入这两个库,
Django models覆盖了Django forms中的CharField类。覆盖关键的功能也可能出现在Python内建的库和第三方库当中。
#Warning:Python 命名冲突
#不要这么做
from django.forms import CharField
from django.db.models import CharField
使用import *就像一位贪婪的顾客到一家冰淇淋店,虽然他只想买一两勺子的冰淇淋,但是他却要求先品尝一下所有31种冰淇淋!
不要导入所有的内容当你仅仅需要使用其中一小部分的内容。
如果一个顾客拿着一碗每种口味都有一勺的冰淇淋走出了冰淇淋店,那又是另一回事情了。