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가 아니다.그래서 인용할 때 반드시 전체 경로, 즉 echo2이어야 한다. 우리가 가져올 것은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에 따라 라이센스가 부여됩니다.