나는 아직도 당신이 요청하는 경우에도 일을하려고하거나 무엇을 말할 수 있지만, 이것은 나의 추측이다 :
일반적으로, 단지 고전적인 수입을 사용합니다.
IF 모듈이 너무 커지거나, 나눌 이유가 충분하지만 같은 네임 스페이스를 공유하려는 경우 더미 네임 스페이스에 값을 "올릴 수 있습니다." 예를 들어 widget.Foo
과 widget.Bar
을 서로 다른 파일에 넣고 싶었지만 각 파일에 Foo
과 Bar
을 입력 할 수있게하려면 보통 from widget import Foo
과 from widget import Bar
을 사용해야합니다. 이 파일들 (foo.py, bar.py, baz.py, ..., zeta.py)이 많다면 약간 다루기 힘들 수 있습니다. 따라서 widget/__init__.py
에 한 번만 가져 와서 각 폴더에서 번 번으로 이동하고 각 모듈에서 from widget import *
한 번만 이동하여 상황을 개선 할 수 있습니다. 그리고 당신은 끝났어! ... 잘 ... 거의 ...
이것은 당신이 극도로 조심해야하는 순환 수입 시나리오에 당신을 데려 간다 : Circular (or cyclic) imports in PythonBar
를 참조하면 예를 들어 괜찮을 것이다. foo.py
의 함수에서는 값을 즉시 사용하지 않기 때문에 모든 것이 잘됩니다. 그러나 x = Bar
을 foo.py
에 입력하면 값이 아직 정의되지 않았을 수 있습니다!
sidenote : __import__
기능을 사용하여 프로그래밍 방식으로 가져올 수 있습니다. 이것을 os.walk
과 연결하면 위젯 폴더의 각 파일에 from ... import *
을 입력하지 않아도됩니다. 이것은 버그를 줄이기 위해 필수적이고 필요한 단계입니다.
나는 당신이 무엇을 요구하고 있는지 이해할 수 없다. 설명 할 코드를 게시 할 수 있습니까? –
가능한 한 명확하게 게시물을 편집 한 후에도 여전히 이해할 수 없습니다. 질문을 편집하고 실제로 무엇을하려고하는지 말하십시오. – ninjagecko