我不理解Python中的'from'[重复]

问题描述 投票:2回答:6
from glob import glob
from os.path import isfile
def countwords(fp):
   with open(fp) as fh:
       return len(fh.read().split())

print "There are" ,sum(map(countwords, filter(isfile, glob("*.txt") ) ) ), "words in the files."

在第一行中,为什么不只是导入glob库?

有没有理由在“ import glob”前面使用“ from glob”?

python glob
6个回答
5
投票

如果写import glob,则需要使用glob.glob

[from glob import globglob.glob并使其仅用作glob


4
投票
>>> import glob
>>> dir(glob)
['__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 
 'fnmatch', 'glob', 'glob0', 'glob1', 'has_magic', 'iglob', 'magic_check', 
 'os', 're', 'sys']

您可以在此处查看glob模块中的所有功能,例如,您可能想要glob的迭代器版本,在这种情况下,您将使用:

from glob import iglob

3
投票

如果使用import glob,则对于功能glob("*.txt"),必须编写glob.glob("*.txt")

[基本上,glob中的第一个from glob import glob是模块的名称,而第二个是函数的名称。


2
投票

[from glob import glob将导入glob模块的glob属性,而import glob将导入整个模块


2
投票

此链接似乎很好地解释了所有不同的变化:

http://effbot.org/zone/import-confusion.htm

最重要的是,从模块中导入特定的事物仅使您直接引用该事物,而不是整个模块。


1
投票

[具有import glob时,将从该模块导入所有功能。当您拥有from xyz import abc时,仅从abc模块导入xyz功能。在这种情况下,您要从glob模块导入glob功能。

这样,在Python代码中,如果要使用glob函数,则不必编写glob.glob,而只需编写glob

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