2015-01-14 2 views
1

그래서 저는 파이썬으로 작은 프로그램을 작성하고 있습니다. 그것은 매우 까다로울 필요가 없으며 재미 있기 때문에 속도 나 자원 또는 그 중 어느 것에 대해서도 반드시 최적화 될 필요는 없습니다. 나는 프로와 거리가 멀어서 미안하지만 어쩌면 궁금합니다.함수 내부에서 라이브러리를 가져 오는 것이 유리합니까?

라이브러리를 가져올 필요가있는 몇 가지 작은 함수 (예 : 5 줄)를 정의하고 있습니다 (urllib, xml.etree 등). 함수의 첫 번째 줄 대신에 코드의 시작 부분처럼 함수 밖에서 처리해야 할 이유가 있습니까? 기능면에서이 기능을 사용하면 미래에 효과적으로 기능을 훔치는 것이 더 쉬워 질 것이라고 생각할 것입니다.하지만 느린 점도 느리게 생각합니다. 엄밀한 규칙이나 규칙이 있습니까? 그리고 그렇지 않다면, 누구든지 의견을 갖고 있습니까?

답변

7

사실, 함수 내에서 모듈을 로컬로 가져 오면 효율성이 약간 향상됩니다. 전역 네임 스페이스는 파이썬이 이름을 검색 할 때 마지막으로 검사하는 것 중 하나이기 때문에 로컬 이름을 찾는 것이 항상 전역 검색보다 빠릅니다.

  1. 그것은 코드의 라인을 낭비 :

    나는 세 가지 이유로이 일을 권하고 싶지 않다, 말했다. 특정 모듈을 필요로하는 모든 기능은이를 가져와야합니다. 즉, 반복되는 import 문을 많이 사용하게됩니다.

  2. 코드의 종속성을 찾기 어렵게 만듭니다. 파일의 맨 위에 가져 오는 주된 이유 중 하나는 가져 오기를 쉽게 볼 수 있기 때문입니다.

    수입이 언제나 모든 모듈 후, 파일의 상단에 의 의견과 문서화 문자열 및 모듈 전역 및 상수 전에를 넣어 :

  3. 그것은 구체적으로 말한다 PEP 0008,에 간다.

+0

끝내 주셔서 감사합니다! – kmdewey

관련 문제