ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] 모듈
    언어/파이썬 & 장고 2016. 10. 7. 11:38

    모듈은 '독자적인 기능을 갖는 구성 요소'를 의미합니다. 모듈은 표준 모듈, 사용자 생성 모듈, 서드 파티 모듈로 나뉩니다. 표준 모듈은 파이썬에서 기본으로 제공해주는 모듈, 사용자 생성 모듈은 사용자가 생성한 모듈입니다. 서드 파티 모듈는 pypi에서 pip 명령어를 통해 받는 파일입니다. 

    보통 모듈의 선언 순서는 표준모듈 - 서드 파티 모듈 - 사용자 생성 모듈 이고 알파벳 순서로 선언하는 것이 베스트입니다.


    모듈을 import 하는 방법은 2가지가 있습니다.

    import 모듈 # 모듈의 실제 파일명
    from 모듈 import 변수 또는 함수


    다음은 calculater.py라는 모듈을 불러오는 두 가지 스타일의 코드로 예시입니다.

    import

    import calculator
     
    calculator.plus(1,2)
    calculator.minus(1,2)

    from 모듈 import 변수 또는 모듈

    from calculator import plus, minus
     
    plus(1,2)
    minus(1,2)

    from 모듈 import 변수 또는 모듈에서 from calculator import * 로 와일드 카드를 사용해 전부 받아올 수 있지만 사용하지 않는 것이 좋습니다. 해당 모듈에서 어떤 함수 및 변수를 불러오는지 파악이 되지 않기 때문입니다.

    모듈이름 재정의

    import calculator as c
     
    c.plus(1,2)
    c.minus(1,2)


    메인모듈과 하위모듈

    파이썬은 자바나 c와는 다르게 메인이 정해져 있는 것이 아닌 실행하는 파일에 따라 변경됩니다. 파이썬에는 내장 전역 변수인 '__name__'이 있는데 해당 변수는 실행의 기준이 되는 모듈의 '__main__'으로 지정됩니다.

    print(__name__)
    # __main__

    최상위 수준에서 실행되는 모듈을 메인 모듈이라고 하면 이 메인 모듈이 import문을 사용하여 불러오는 모듈은 하위 모듈입니다. 하위모듈의 '__name__'변수는 메인 모듈에서와는 달리 모듈 자체의 이름을 담고 있습니다.

    # sub.py
    print('sub file')
    print('name : {0}'.format(__name__))
    print('end') 


     import sub
    print('main')
    print('name : {0}'.format(__name__))
    print('end')
    
    
    # 결과
    # sub file
    # name : sub
    # end
    # main
    # name : __main__
    # end

    import sub 를 하면 sub.py 안의 내용이 전부 실행됩니다. 만약 sub.py 파일 내 코드가 최상위 수준일 때만 실행되도록 하고 싶을 때는 '__name__' 변수에 힌트가 있습니다.

    최사위 수준일 때 '__name__'변수가 '__main__'으로 지정되는 것을 이용하면 됩니다.

    # sub.py
    if __name__ == '__main__':
        print('sub file')
        print('name : {0}'.format(__name__))
        print('end')


    # main.py
    import sub
    print('main')
    print('name : {0}'.format(__name__))
    print('end')
    
    
    # 결과
    # main
    # name : __main__
    # end

    댓글