Pythonic编写长导入语句的方法

时间:2014-10-08 09:29:20

标签: python django python-import

从Django中的模型(或表单或视图)导入的pythonic方法是什么?

坦率地说,我直言不讳地说:

from myapp.models import foo, bar, foobar, barfoo, foofoo, barbar, barfoobar, thelistgoeson, and, on, andon...

它远远超过最多79个字符 - 但是更好的方法是什么?

2 个答案:

答案 0 :(得分:7)

使用括号将导入分组:

from myapp.models import (foo, bar, foobar, barfoo, foofoo,
    barbar, barfoobar, thelistgoeson, and, on, and, so, on)

这符合PEP-328 Rationale for parentheses

  

目前,如果要从模块中导入大量名称或   包,你必须选择几个令人不快的选择之一:

     
      
  • 用反斜杠连续写一个长行:
  •   
  • 编写多个导入语句:
  •   
     

import *不是一个选项; - )

     

相反,应该可以使用Python的标准分组   机制(括号)写入import语句:

     

这部分提案从一开始就获得了BDFL的批准。

     

在Python 2.4中添加了括号支持。

答案 1 :(得分:2)

导入模型怎么样?

from myapp import models

foo = models.foo
bar = models.bar

它更短,您无需维护导入列表。您还可以拥有一个名称空间,并且可以使用名为foobar

的局部变量