Python #20 l 파이썬 날개달기_모듈(Module)

신승호·2021년 3월 25일
0

Python

목록 보기
21/35
post-custom-banner

List

  • 파이썬 날개달기
    • 클래스(class)
    • 모듈(module)
    • 패키지(package)
    • 예외처리(exception)
    • 내장함수
    • 라이브러리(library)
    • 연습문제

파이썬 날개달기_모듈(Module)


모듈

모듈이란

  • 함수나 변수 또는 클래스를 모아놓은 파일
  • 다른 파이썬 프로그램에서 불러와 사용할수 있게 만들어놓은 것임

모듈 만들기

모듈 만들기

  • ※ 파이썬 확장자 .py로 만든 파이썬 파일은 모두 모듈이다.
# mod1.py
def add(a, b):
    return a + b
def sub(a, b): 
    return a-b
  • mod1.py 모듈을 만들어서 /Users/shinisgood/Documents에 저장

모듈 불러오기

기본구조

  • import 모듈
  • 반드시 명령 프롬프트를 파일(모듈)을 저장해 놓은 디렉터리로 이동시킨다음 대화형 인터프리터를 실행시켜야함
>>> import mod1
>>> print(mod1.add(3, 4))
7
>>> print(mod1.sub(4, 2))
2

모듈을 불러오는 다른 방법

기본구조

  • from 모듈이름 import 모듈함수

모듈 이름 없이 함수 이름만 쓰고 싶은 경우에 사용.

  • 모듈 mod1에서 add함수만 가지고 오기
>>> from mod1 import add
>>> add(3, 4)
7
  • 모듈 mod1에서 addsub 2가지 함수 가지고 오기
from mod1 import add, sub
  • 모듈 mod1에 있는 함수 전부 가지고 오기(import* 사용)
from mod1 import *

if name == "main": 의 의미

if name == "main" 사용

  • 결과를 출력하는 문장print()가 모듈파일.py에 들어있을 때 함수만 가지고 나올 수 있다.

  • mod1.py모듈파일을 직접 실행(run 활용) 시킬 때

# mod1.py 
def add(a, b): 
    return a+b

def sub(a, b): 
    return a-b

print(add(1, 4))
print(sub(4, 2))
  • 아래와 같이 값이 출력됨
5
2
  • mod1.py모듈파일을 import 로 실행 시킬 때 또한 값이 같이 출력됨
import mod1
5
2
  • ****mod1모듈에서 add, sub함수만 꺼내서 사용하기 위해서 mod1 모듈에 if __name__ == "__main__” 추가해야한다
# mod1.py 
def add(a, b): 
    return a+b
def sub(a, b): 
    return a-b
if __name__ == "__main__":                      # 
    print(add(1, 4))
    print(sub(4, 2))
>>> import mod1

__name__ 변수란 ?

  • 파이썬의 __name__ 변수는 파이썬이 내부적으로 사용하는 특별한 변수 이름이다.

클래스와 변수등을 포함한 모듈 불러오기

  • 모듈의 클래스에서 함수 불러오기
# mod2.py 
PI = 3.141592
class Math: 
    def solv(self, r): 
        return PI * (r ** 2) 

def add(a, b): 
    return a+b 
  • 모듈의 변수 불러오기 : import 모듈 -> print(모듈.변수)
>>> import mod2				# import 모듈
>>> print(mod2.PI)			# print(모듈.변수)
3.141592
  • 모듈의 클래스에서 함수 불러오기 import 모듈 -> print(모듈.클래스().함수())
>>> a = mod2.Math()		# a = 모듈.클래스()
>>> print(a.solv(2))		# print(mod2.Math().solv(2))와 동일
12.566368

다른 파일에서 모듈 불러오기

  • mod1.pydoit디렉터리(파일)에 저장시켜라
  • mod1.py의 위치 - /Users/SEUNGHOSHIN/Documents/doit
  • import sys 를 불러와라
>>> import sys
  • sys.path를 통해 파이썬 라이브러리가 설치되어있는 디렉터리 확인
>>> sys.path
['', '/Users/SEUNGHOSHIN/Documents', '/Library/Frameworks/Python.framework/Versions/3.9/lib/python39.zip', '/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9', '/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages']
  • 리스트를 보고 현재 모듈이 저장되어있는 디렉터리가 있는지 없는 지 확인 후 없다면,
  • sys.path.append(“저장공간”)을 통해 모듈이 저장되어있는 디렉터리(다른파일)을 추가해주자
>>> sys.path.append("/Users/SEUNGHOSHIN/Documents/doit")
  • sys.path를 통해 마지막 부분에 추가된거 확인
>>> sys.path
['', '/Users/SEUNGHOSHIN/Documents', '/Library/Frameworks/Python.framework/Versions/3.9/lib/python39.zip', '/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9', '/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages', '/Users/SEUNGHOSHIN/Documents/doit']
  • 다시 불러와 봐
>>> import mod1
>>> print(mod1.add(4, 5))
9
profile
신승홉니다
post-custom-banner

0개의 댓글