2012-12-29 2 views
4

필자는 Python에 비교적 익숙하지 않으며 파이썬 개발면에서 견고한 기반을 구축하기위한 일을하는 "Python"방식을 배우려고합니다. 아마도 내가 성취하고자하는 것은 전혀 파이썬이 아니지만, 그럼에도 불구하고이 문제를 해결하기위한 "올바른"방법을 찾고자합니다.주어진 폴더의 모든 파이썬 파일로 자동으로 가져 오기 하시겠습니까?

모듈을 만드는 응용 프로그램을 만들고 있습니다. 방금 광 모듈에 7 개의 다른 .py 파이썬 파일이 있으며, 모두 3 개의 동일한 것을 가져 오는 것으로 나타났습니다. 따라서이 모든 파일은 이러한 가져 오기를 공유합니다.

나는 그들을 제거하고 공백에 초기화 .py를 빈에 삽입하려고 시도했지만 트릭을하지 않았다.

이러한 가져 오기는 모든 모듈 파일에서 필요하므로 가능하면 각 파일마다 하나씩 가져 오기를 싫어합니다.

일반 가져 오기를 수행하려면 어떻게해야합니까?

대단히 감사합니다. 친절하게 도와 주셔서 감사합니다.

import xyz 

import abc 

...

있는 File2 :

import xyz 

거의 동일한 질문도 가지고 내가 DrewV에 동의

+2

수입이 쌉니다. 동일한 모듈을 여러 위치로 가져 오는 것은 문제가되지 않습니다. –

+2

난 당신이 공통 가져 오기를 사용하지 말고 대신 명시 적으로 각 파일에 종속성을 가져올 것 같아요. –

답변

4

,이 좋은 예입니다

그리고 수입은 네임 스페이스와 상호 작용하는 방법에 대한 논의

은 참조하십시오.

모듈의 종속성을 가져 오기에 명시 적으로 나열하면 파일의 모든 심볼을 간단한 텍스트 검색으로 추적 할 수 있다는 것을 의미합니다. 예 : 파일에서 some_identifier을 검색하면 파일에 정의 또는 from some_module import some_identifier이 표시됩니다. some_module.some_identifier을 직접 참조하면 더욱 분명합니다. 다음

#fourth.py 
import first 
import second 
import third 

: (. 이것은 또한 당신이 from module import *을하지 말아야 할 이유 중 하나)

한 가지는 당신이 할 수있는, 위의 속성을 잃지 않고, 네 번째 모듈로 삼 개 공유 모듈을 가져 오는 것입니다 ...

#another.py 
import fourth 

fourth.first.some_function() 
#etc. 

당신이 (그것이 결국 통화에서보다 자세한 정보를 표시하게하는 않음) 그 위장 할 수없는 다음 세 수입의 중복이 정말 잘됩니다.

3

, 할

을 File1 완벽하게 파이썬입니다 다음 링크에서 처리되었습니다 :

0 이 설명 하듯이

python multiple imports for a common module

는, 파이썬은 모듈로드를 최적화하는 일을한다, 그래서 당신은 여러 import 문을 작성하고 모듈은 한 번를로드하기 때문에, 성능 손실에 대해 걱정하지 않아도됩니다. 사실, 각 파일의 모든 가져 오기를 나열하면 각 파일이 무엇에 의존하는지 명확하게 알 수 있습니다. "노골적인 암시보다 낫다"는 Zen of Python 상태로

Python imports across modules and global variables