Python 3.x 对openpyxl、python3的质疑

Python 3.x 对openpyxl、python3的质疑,python-3.x,Python 3.x,伙计们,我只是蟒蛇3的初学者。我有一个问题: import openpyxl from openpyxl.style import * 正如您所看到的,我正在导入openpyxl模块,但是为什么我需要导入第二个模块,以便设置字体和单元格的样式 openpyxl是一个包。它包含模块,例如style。无论如何都应该导入包(所有包或单个项目)。您可以: import openpyxl from openpyxl.style import * 然后使用样式项,如item1,item2 或 然后使用

伙计们,我只是蟒蛇3的初学者。我有一个问题:

import openpyxl
from openpyxl.style import * 

正如您所看到的,我正在导入openpyxl模块,但是为什么我需要导入第二个模块,以便设置字体和单元格的样式

openpyxl
是一个包。它包含模块,例如
style
。无论如何都应该导入包(所有包或单个项目)。您可以:

import openpyxl
from openpyxl.style import *
然后使用样式项,如
item1
item2


然后使用样式项,如
style.item1
style.item2

,您不必这样做,您也可以轻松做到:

import openpyxl
openpyxl.styles.fonts()
或:


这可以归结为个人偏好。使用
*
导入通常是不受欢迎的,因为存在污染名称空间的风险,但是如果您知道这不会发生,并且希望代码行更短,这是可以接受的。

您正在导入openpyxl,它包括openpyxl中的所有内容,包括openpyxl.style和其中的所有内容。但是如果您想使用openpyxl.style的X函数,那么您必须编写:

openpyxl.style.X() 
如果您写第二行,您可以简单地写:

X()
基本上,第二行将名称空间openpyxl.style的所有内容导入到当前名称空间中,消除了编写openpyxl.style的麻烦。每次都是。虽然通常情况下,最好不要像这样合并名称空间,也不要使用

from _________ import *
相反,你会写作

import openpyxl.style as op
然后将X函数用作:

op.X()
也可以省略该行

import openpyxl 

如果除了openpyxl.style中包含的内容之外,您没有使用openpyxl中的任何其他内容,那么我认为openpyxl可能是
op.X()
import openpyxl