2011-07-01 4 views
1

다음은 예제입니다. 여기,하자의 말에 핵심 디렉토리 모듈 (라고 feedy.py)입니다 :모듈을 모듈로 가져 오십시오. 수행하려는 작업을 설명 할 수 없습니다.

import feedparser 

feed = feedparser.parse("http://site.com/feed") 
[...] 

나쁜 예, 어쨌든 내 문제가 주요 스크립트 (부모 디렉토리)에, 나는

을 할 필요가
import feedparser 

뿐만 아니라 그러나

from core import feedy 

이미 feedy.py 수입 이후, feedparser를 가져올 필요성을 제거하는 방법은,이 같은?

희망하시는 분은 입니다.

+2

왜 가져 오기 명령문을 제거해야합니까? –

+0

내 코드를 조금 작게;). 별 차이가 없지만 어쨌든 방법이 있는지 궁금합니다. –

+0

메인 스크립트에서'feedparser'를 직접 사용하지 않는다면 가져올 필요가 없습니다. 반대로 메인 스크립트에서'feedparser'의 코드가 필요하다면 가져와야합니다. – bernie

답변

0

원칙적으로 그렇습니다. 그러나 일반적으로 좋은 생각은 아닙니다.

모듈 import 모듈을 사용하면 해당 모듈에 대한 참조 인 로컬 변수를 효과적으로 선언 할 수 있습니다. 따라서 feedy에는 feedparser이라는 객체가 있습니다. 이는 feedparser 모듈 일 수 있습니다. 언제든지 다른 파이썬 객체로 재 지정할 수도 있습니다.

import feedy이있는 경우 feedy의 내 보낸 변수 중 하나를 feedy.name으로 참조 할 수 있습니다. 따라서이 경우 feedy.feedparser은 모듈 feedparser입니다.

feedy이 구현되어 feedparser을 가져 오지 않거나 내보내는 방식을 변경하면 기본 스크립트가 손상됩니다. 일반적으로 정의한 모든 것을 내보내는 것은 원하지 않지만 빠른 해킹에는 적합합니다.

+0

아, 괜찮습니다. 'feedparser'로 작은 테스트를 해본 결과 괜찮습니다. 어쨌든 고마워요. –

+0

@fike이 답변에 만족한다면 적어도 받아 들여야합니다. :) –

+0

투표를하려면 15 명이 필요합니다. P. 그러나 나는 그것을 받아 들였다. 미안 해요, 난 여기에 누브 :) –

관련 문제