簡體   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