Python2.7 모듈 및 패키지 관리 학습 요약 03
예에 근거하여 하나하나 분석하다
다음 디렉토리의 파일 가져오기
import
부터 시작합시다.원본 test_main.py
파일에 import effects
이 하위 폴더를 불러오는 코드만 추가됩니다.구체적인 코드는 다음과 같다: # effects
import effects
# test_mian.py
print "============== test_main.py =============="
print dir()
def test():
print "============== test_main.test =============="
# main()
if __name__ == '__main__':
test()
실행 결과:
============== effects.__init__ ==============
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']
============== test_main.py ==============
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'effects']
============== test_main.test ==============
[Finished in 0.2s]
실행 결과를 자세히 살펴보면
import effects
파이톤이 이 폴더에 대응하는 __init__.py
를 실행했고, 당연히 이 파일을 대응하는 .pyc
파일로 컴파일한 것으로 나타났다.test_main
의dir()
에는 effects
가 포함되어 있지만 effects
에는 우리가 사용하고자 하는 echo.py
를 포함하는 폴더 아래의 모듈이 없다.그래서 직접 인용은 성공하지 못할 겁니다.코드 수정, 추가effects.echo.test()
호출# effects
import effects
effects.echo.test()
# test_mian.py
print "============== test_main.py =============="
print dir()
def test():
print "============== test_main.test =============="
# main()
if __name__ == '__main__':
test()
운행 결과, 과연 이상 신고, 알림 없음
echo
============== effects.__init__ ==============
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']
Traceback (most recent call last):
File "E:\WorkSpace\Python\test\sound\test_main.py", line 5, in
effects.echo.test()
AttributeError: 'module' object has no attribute 'echo'
[Finished in 0.2s with exit code 1]
import
디렉터리에 있는 effects
파일의 echo.py
함수를 호출하려면 test()
, 그리고 import effects.echo
를 통해 호출할 수 있습니다.호출할 때의 경로가 전체 경로라는 것을 지적해야 한다.코드는 다음과 같습니다. # echo
import effects.echo
effects.echo.test()
# test_mian.py
print "============== test_main.py =============="
print dir()
def test():
print "============== test_main.test =============="
# main()
if __name__ == '__main__':
test()
실행 결과:
============== effects.__init__ ==============
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']
============== echo.py ==============
['__builtins__', '__doc__', '__file__', '__name__', '__package__']
============== echo.test ==============
============== test_main.py ==============
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'effects']
============== test_main.test ==============
[Finished in 0.2s]
운행 결과를 자세히 살펴보면 다음과 같은 몇 가지를 볼 필요가 있다. 1.
effects.echo.test()
최종적으로 도입된 것은 test_main
이지 effects
가 아니다.그래서 인용할 때 반드시 전체 경로, 즉 echo
2이어야 한다. 우리가 가져올 것은effects.echo
이지만 echo
아래의effects
는 도입되어 실행되었다.__init__.py
방식으로 가져옵니다.사실 이 방식은 위와 차이가 크지 않고 동급 디렉터리와 차이가 많지 않으며 호출할 때 관련 함수 이름을 직접 호출한다.코드는 다음과 같습니다. # echo
from effects.echo import *
test()
test1()
# test_mian.py
print "============== test_main.py =============="
print dir()
def test():
print "============== test_main.test =============="
# main()
if __name__ == '__main__':
test()
실행 결과:
============== effects.__init__ ==============
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']
============== echo.py ==============
['__builtins__', '__doc__', '__file__', '__name__', '__package__']
============== echo.test ==============
============== echo.test1 ==============
============== test_main.py ==============
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'test', 'test1']
============== test_main.test ==============
[Finished in 0.2s]
from import
최종적으로 불러온 것은 test_main
의 두 함수 대상이다.echo
불러오기from effects import echo
를 통해echo
방식으로 함수를 호출하면 효과는 같다.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.