搜索

首页  >  问答  >  正文

python - 使用from XXX import (XXX, XXX, XXX,) 导入模块时, 括号()的意义何在?

在阅读django源码时发现, 在import模块时总会添加上括号, 例如:

from django.core.exceptions import (
    DisallowedHost, ImproperlyConfigured, RequestDataTooBig,
)

from django.utils.encoding import (
    escape_uri_path, force_bytes, force_str, force_text, iri_to_uri,
)

请教下 from XXX import (XXX, XXX, XXX,) 这样导入模块时, 括号的意义是什么?

世界只因有你世界只因有你2752 天前1124

全部回复(2)我来回复

  • 仅有的幸福

    仅有的幸福2017-05-18 10:51:54

    这是一种编码规范,始于PEP 328。在不加括号时,需要在换行的时候,行末要么加上反斜杠,如下所示:

    from xxx import aaa, bbb, \
        ccc

    要么每一行都写一遍from xxx import yyy

    from xxx import aaa
    from xxx import bbb
    from xxx import ccc

    有了括号就可以在括号内随意换行:

    from xxx import (
        aaa,
        bbb,
        ccc,
    )

    参见PEP328

    回复
    0
  • PHPz

    PHPz2017-05-18 10:51:54

    个人理解:

    from django.core.exceptions import (
    DisallowedHost, ImproperlyConfigured, RequestDataTooBig
    )

    等效

    from django.core.exceptions import DisallowedHost;
    from django.core.exceptions import ImproperlyConfigured;
    from django.core.exceptions import RequestDataTooBig;

    语法看上去简洁些,一眼看上去就知道哪些方法是从一个模块中导入的。 也是习惯问题吧,仁者见仁智者见智。个人写着舒服就OK

    回复
    0
  • 取消回复