2010-04-11 6 views
11

gui 패키지의 자체 모듈에 다양한 GUI 클래스가있는 wxPython 응용 프로그램이 있습니다.패키지의 네임 스페이스에있는 Python 패키지 내의 모듈 내부에 클래스를 노출

:

from gui.mainwindow import MainWindow 

이 내가 패키지 네임 스페이스에 직접 클래스를 가져올 gui 패키지의 __init__.py 파일을 변경 그래서 나에게 지저분한보고 다음과 같이이 설정으로, 메인 창을 가져 오는 것은 할 것

from gui import MainWindow 

이 더 잘 보이는 :

from mainwindow import MainWindow 

이 나를 이렇게 메인 윈도우를 가져올 수 있습니다 나에게 미학적으로 그리고 나는 또한 내가 무엇을하고 있는지를 더 가깝게 표현한다고 생각한다. (MainWindow 클래스를 "네임 스페이스"gui에서 가져옴). gui 패키지를 만든 이유는 모든 GUI 항목을 함께 유지하기 위해서였습니다. 하나의 gui 모듈을 쉽게 만들 수 있었고 모든 GUI 클래스를 채울 수 있었지만 관리하기가 어려웠을 것입니다. 패키지는 이제 모듈처럼 작동하는 것처럼 보이지만 클래스를 자체 모듈로 분리 할 수 ​​있습니다 (도우미 함수 등과 함께).

이 모든 일은 다소 사소한 것 같아요. 다른 사람들이 그 생각에 대해 어떻게 생각 하는지를보기 위해 저를 버릴 것이라고 생각했습니다.

+0

여러분이 단지 의견을 묻는 것 같고, 정말로 질문하지 않고있는 것처럼 보입니다 ... 어떤 것이 StackOverflow에 맞지 않습니다. (그것이 가치있는 일이지만, 나는 자주 이런 일이 일어나는 것을보고 나는 그것에 문제가 있다고 생각하지 않습니다.) –

답변

4

글쎄, 이것은 매우 일반적인 패턴이며 __init__.py 파일 안에 포함 할 수있는 이유가 있다고 생각합니다.
__init__.py 파일의 import 문에 대한 grep 만 사용하면 표준 라이브러리와 공용 패키지 모두에서 널리 사용됩니다.

+0

당신 말이 맞습니다. 방금 wxPython의'__init __. py' 파일을 보았습니다. 그리고 그들은 똑같은 일을합니다. –

관련 문제