根据谷歌风格指南进行多次导入

时间:2017-06-18 10:08:21

标签: python python-import google-style-guide

我不明白Google Python Style Guide about multiple imports per line中的内容。

可以这样做(根据谷歌风格指南):

from wagtail.wagtailimages.blocks import ImageChooserBlock, EmbedBlock

或者我必须这样写:

from wagtail.wagtailimages.blocks import ImageChooserBlock
from wagtail.wagtailembeds.blocks import EmbedBlock

感谢。

3 个答案:

答案 0 :(得分:1)

绝对第一种方式很好。没有人做第二种选择,那将是非常浪费。您不应该在同一行上导入多个不同的模块,但您的第一个示例是关于从单个模块获取多个属性。

答案 1 :(得分:1)

使用第一个。

from wagtail.wagtailimages.blocks import ImageChooserBlock, EmbedBlock

要导入多个成员,您可以使用括号并添加一些换行符。这是一个例子:

from OpenGL.GLUT import (GLUT_DEPTH, GLUT_DOUBLE, GLUT_RGB, glutCreateWindow,
                         glutDisplayFunc, glutInit, glutInitDisplayMode,
                         glutInitWindowSize, glutMainLoop, glutSwapBuffers)

请注意区别:

您不应该在一行中导入多个模块:

import os, sys, platform    # DO NOT DO THIS!

但是导入多个成员就可以了:

from math import sin, cos

提示:结帐isort

答案 2 :(得分:0)

如果在该链接样式指南中单击“导入格式”部分下面的右侧三角形,则会得到一些正面和负面的示例。这是一个积极的例子:

import foo
from foo import bar
from foo.bar import baz
from foo.bar import Quux
from Foob import at

如您所见,从单个模块foo.bar导入了两个项目,它们列在不同的行中。

因此,在您的两个示例中,Google样式指南要求您使用第二个单独的行。请注意,我并不是说你应该这样做,只是显然Google风格指南说你应该这样做,这似乎是你的问题。

另一方面,显然也是谷歌的Python Style Guidelines for The Chromium Projects

  
      
  • 可以导入模块中的包,模块和东西。之所以提到这一点仅仅是因为它与Google风格指南中的导入部分相矛盾(记住,这不是Chromium OS的权威)。      
        
    • 换句话说,这完全没问题:from subprocess import Popen, PIPE
    •   
  •   

该例子表示没问题,确实从一个模块中导入多个项目。因此,请选择您的权限。