繁体   English   中英

根据Google样式指南进行多次导入

[英]Multiple imports according to google style guide

我不了解Google Python样式指南中关于每行多个导入的内容

这样可以吗(根据Google样式指南):

from wagtail.wagtailimages.blocks import ImageChooserBlock, EmbedBlock

还是我必须这样写:

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

谢谢。

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

使用第一个。

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

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

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

如您所见,有两个项目是从单个模块foo.bar导入的,它们在单独的行中列出。

因此,在您的两个示例中,《 Google风格指南》希望您使用第二行(分隔线)。 请注意,我并不是说这是您真正应该做的,只是显然Google样式指南说您应该这样做,这似乎是您的问题。

另一方面,显然Google也提供了《 The Chromium ProjectsPython样式指南》

  • 可以在模块中导入包,模块和事物。 提及该文件仅是因为它与Google样式指南中的导入部分相抵触(请记住,该部分不是Chromium OS的授权)。
    • 换句话说,这完全可以: from subprocess import Popen, PIPE

可以确定,该示例确实从一行中的一个模块导入了多个项目。 因此,请选择您的权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM