저는 ~ 30 명의 개발자 팀을위한 파이썬 코딩 가이드 라인을 작성하고 있습니다. 내 문서의 기초로서, 지금까지 Google python style guide과 PEP 8 style guide을 연구했으며 두 가지 모두에서 정보를 통합했습니다.파이썬에서 클래스 가져 오기와 클래스 모듈 가져 오기의 장단점은 무엇입니까?
Google 스타일 가이드가 PEP 8보다 더 제한적인 곳은 가져 오기입니다. Google 가이드는 개발자에게 패키지 및 모듈 만 가져 오기를 요청한 다음 더 적합한 이름으로 된 항목을 참조하도록 요청합니다. 예 :
from pkg import module
...
my_class = module.MyClass()
"각 식별자의 출처가 일관된 방식으로 표시됩니다"는 정당성이 있습니다. 우리 프로젝트에서는 2 ~ 3 단계의 패키지로 구성하려고하므로 식별자의 전체 소스를 알기 위해 어쨌든 import 문을 검사해야 할 것입니다. 나는 "선호하는 스타일"로 수입이 스타일을 옹호하고 싶습니다 :
from pkg.module import MyClass
...
my_class = MyClass()
IMHO, 이름이 더 간결 때 개선 등의 지능형리스트 파이썬 구조의 가독성을.
불투명 한 점은 파이썬 인터프리터가 무대 뒤에서 할 수있는 일입니다. 예를 들어 MyClass가 이제이 모듈과이 모듈의 모든 수입업자에 대한 전역 네임 스페이스의 일부입니까? (이것은 좋지 않을 것이고, 이상한 버그로 이어질 수 있으며, 이것이 사실이라면 나는 Google 스타일을지지 할 것이다).
파이썬 개발 경험이 약 6 개월로 제한되어 있으며 (컨설팅 프로젝트에 대한 전문가가 많지 않기 때문에) 커뮤니티에서 더 많은 정보를 얻고 싶었습니다. 여기에 이미 연구 한 일부 항목은 다음과 같습니다
effbot - discussion on imports
stack overflow - import vs. from import
python documentation - modules
이 답변 주셔서 감사합니다!
* 직접 참조 할 수있는 것은 모듈의 전역입니다. MyClass는 두 번째 예제에서 실제로 전역이며, 첫 번째 모듈은 모듈입니다. –
나는'import blah'와'vlah = blah.vlah'를합니다. 왜냐하면 내가'blah import vlah'를했을지라도 전체 모듈'blah'가 처리 될 것이기 때문입니다. – thkang
Martijn이 대답 한 글로벌 질문 외에도 다른 것을 찾고 있습니까? 그렇다면 질문을 더 명확하게 할 수 있습니까? – msw