2012-08-08 4 views
2

가능한 중복 : 첫 번째 줄에
'import module' or 'from module import'
from … import vs import .나는 파이썬 '에서'을 이해하지 못하는

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 라이브러리 가져 오기?

"glob from"을 "import glob"앞에 사용할 이유가 있습니까? ,

from glob import iglob 
+0

아마도 더 좋을 수도 있습니다. http://stackoverflow.com/questions/710551/import-module-or-from-module-import –

답변

5

당신이 import glob을 작성하는 경우 :

+2

동의합니다. 주로 편의를 위해 "from"키워드를 사용하지만 이름 충돌을 피하기 위해 필요한 경우가 있습니다. – djf

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 globglob.glob이며, 바로 glob으로 사용할 수 있습니다.

3

glob("*.txt")의 경우 import glob을 사용하는 경우 glob.glob("*.txt")을 작성해야합니다.

기본적으로 from glob import glob의 첫 번째 glob은 모듈의 이름이고 두 번째 모듈은 함수의 이름입니다.

1

import glob가 있으면 해당 모듈에서 모든 기능을 가져옵니다. from xyz import abc이있는 경우 xyz 모듈에서 abc 함수 만 가져올 수 있습니다. 이 경우 glob 모듈에서 함수를 가져옵니다.

glob.glob을 쓰는 대신 glob 함수를 사용하려면 파이썬 코드에서 glob을 작성하면됩니다.

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

결론은 수입이다 : import glob은 전체 모듈을 가져올 때이 링크는 아주 잘 다른 모든 변형을 설명하는 것 같았다

2

from glob import globglob 속성 glob 모듈로 가져옵니다 모듈의 특정 사항은 전체 모듈이 아니라 해당 모듈에 대한 직접적인 참조를 제공합니다.

관련 문제