避免使用import *

来源:互联网 发布:mac cp 文件夹 编辑:程序博客网 时间:2024/05/20 20:47

#翻译自《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种冰淇淋!

    不要导入所有的内容当你仅仅需要使用其中一小部分的内容。


    如果一个顾客拿着一碗每种口味都有一勺的冰淇淋走出了冰淇淋店,那又是另一回事情了。

0 0
原创粉丝点击