初学者的问题:为什么我需要两次导入一个模块?

问题描述 投票:-4回答:3

[伙计们,我只是Python3的初学者。我有一个问题:

import openpyxl
from openpyxl.style import * 

您可以看到我正在导入openpyxl模块,但是为什么我需要导入第二个模块才能将fontscells设置为样式。

python-3.x
3个回答
1
投票

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

import openpyxl
from openpyxl.style import *

然后使用样式项,例如item1item2

from openpyxl import style

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


1
投票

您不必-您可以轻松地做到:

import openpyxl
openpyxl.styles.fonts()

或:

from openpyxl import style
style.fonts()

取决于个人喜好。通常不赞成使用*导入,因为存在污染名称空间的风险,但是如果您知道这种情况不会发生,并且您想使代码行更短,则可以接受。


0
投票

您正在导入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以外的其他东西,而不是openpyxl.style中包含的内容

© www.soinside.com 2019 - 2024. All rights reserved.