클래스/메소드/등의 여러 위치를 피하는 방법은 무엇입니까? 파이썬 패키지의 네임 스페이스 안에서? 다음 디렉토리 구조와 코드를 가진 패키지를 고려하십시오.하위 모듈이 네임 스페이스 w/__init__.py에 나타나지 않도록하십시오.
dummyproj/
├── __init__.py
└── main.py
.
# main.py
# =======
def dummy_func():
print "hello world"
.
# __init__.py
# ===========
from main import *
이 구성을 사용하면 dummy_func
기능을 패키지 내에서 사용할 수 있습니다. 그러나 main
이라는 하위 모듈에서도 사용할 수 있습니다. 예를 들어 :
>>> import dummyproj
>>> dir(dummyproj)
['__builtins__',
'__doc__',
'__file__',
'__name__',
'__package__',
'__path__',
'dummy_func',
'main']
>>> dummyproj.dummy_func()
hello world
>>> dummyproj.main.dummy_func()
hello world
은 어떻게 dummy_proj
네임 스페이스에 표시에서 main
을 방지 할 수? 내 이해는 dummy_func
에 대한 코드를 __init__.py
에 포함시키는 것은 나쁜 형식입니다.
'dummy_func'이 두 곳에서 표시 되더라도 위에서 설명한대로 허용되는 방법입니까? –
도와 줘서 고마워, 루카스. 나는'requests' 모듈에 대해 어느 정도 익숙하다. 그래서 당신의 요지를 만드는 효과적인 예제이다. 이 효과에 대한 답을 대답으로 제출하면 받아 들일 수 있습니까? –