2013-06-19 2 views
1

의 난과 같이 간단한 모듈 (foo.py)가 있다고 가정 해 봅시다 :파이썬 모듈 모범 사례

이제
import os 
import sys 

THIS_IS_A_CONSTANT = sys.path 

def this_is_a_function(): 
    print os.name() 

이 그 I import foo을 가정합니다. 지금은 다음과 같은 것이다 : 나에게

>>> dir(foo) 
['THIS_IS_A_CONSTANT', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'os', 'sys', 'this_is_a_function'] 

를, 그것은 산만 내가 foo.os 그들이 모듈 foo 반출해서는 안 IMO 때문에 foo.sys에 액세스 할 수 있는지 고민 거리다.

foo.py 끝 부분에 del sys을 추가 할 수 있지만 이는 잘못된 것으로 간주됩니까? 불행히도 del os에 대해서도 같은 작업을 수행 할 수 없습니다.

+0

저는 실제로 이것을 선호합니다. foo를 반입하는 메인 모듈이 os 나 sys를 필요로하지 않는 경우, 거기에 반입 할 필요가 없습니다. – imagineerThat

답변

0

정말 너를 귀찮게하는 경우 import sys as _sys 등.

+0

실제로 아무 것도 변경하지 않습니다 ... dir (foo)는 단지'_sys'를 대신 포함합니다 –

+0

물론 모듈 사용자는 모듈의 인터페이스가 아닌 구현 세부 사항을 알고 있습니다. – kindall

0

이렇게하면 좋습니다. 그렇지 않으면 많은 수의 가져 오기를 사용하고 주 기능에 필요한 모든 가져 오기를 추적하지 않는 긴 모듈을 사용할 수 있습니다. foo.py에 sysos을 내보내는 데 어떤 문제도 실제로 나타나지 않습니다.