파이썬 모듈 import

2023. 5. 23. 08:00·프로그래밍 언어/파이썬 기초
PI = 3.14

def ar_circle(rad):
    return rad * rad* PI    #원의 넓이를 계산해서 반환하는 함수
def ci_circle(rad):
    return rad * 2 * PI      #원의 둘레를 계산해서 반환하는 함수

원래는 이렇게 함수를 만들고 main()을 통해 만든 함수를 실행시켰었다
하지만 위의 코드는 main() 함수를 쓰지 않고 함수의 정의 두 개만 있다

이렇게 두 개의 함수만 존재한다는 것은 함수를 실행의 중심으로 두려는 것이 아니라

어떤 프로그램에 제공하기 위한 것이라는 것이다.

담아 놓은 내용이 실행의 흐름이 아니라 다른 프로그램에서 가져다 쓸 수 있는

내용들로 채워져있으면 그것을 모듈이라고 한다.

 

즉 모듈은 파이썬 입장에서 가져다 쓸 수 있는 부품을 뜻한다.

지금부터 위 코드를 따로 폴더에 circle.py로 저장해놨다고 가정한다.

 

 

 

import circle      #폴더에 저장된 circle.py 모듈을 가져다 쓰겠다는 선언이다. [.py]는 생략하고 써야함 

def main():
    r = float(input("반지름 입력: "))
    ar = circle.ar_circle(r)     #circle.py 모듈안에 있는 ar_circle 함수 호출
    print("넓이",ar)
    ci = circle.ci_circle(r)     #circle.py 모듈안에 있는 ci_circle 함수 호출 
    print("둘레",ci)

main()

[import + 모듈이름]을 선언하면 이 위치에 그 모듈이 존재한다고 생각하면 된다.

물론 실제로 들어오는 건 아니다.

 

 

 

from circle import ar_circle 
from circle import ci_circle

[circle 모듈로부터 ar_circle를 import 하겠다]

[circle 모듈로부터 ci_circle를 import 하겠다] 
라는 뜻이고, 이런 식으로 함수단위의 선언도 가능하다.

 

 

 

def main():
    r = float(input("반지름 입력: "))
    ar = ar_circle(r)        #circle.py의 ar_circle 함수 호출
    print("넓이",ar)
    ci = ci_circle(r)         #circle.py의 ci_circle 함수 호출 
    print("둘레",ci)

main()

함수 단위의 import의 장점은 위치정보를 생략해도 된다.

모듈 전체를 import 했을 때 ar = circle.ar_circle(r) 라고 쓰던걸
함수 단위로 호출했을 때는 ar = ar_circle(r) 이렇게 썼다.

두 가지 방법은 상황에 따라 장단점이 다르기에 자유롭게 쓰면 된다. 

 

 

 

from circle import ar_circle 
from circle import ci_circle


from circle import ar_circle,ci_circle


위쪽 같이 같은 모듈로부터 온 두 개의 함수는 아래쪽 코드 처럼한번에 써도 괜찮다. 

 

 

 


 

def ci_circle(rad):
    return rad * 2 * PI

circle 모듈은 위의 코드라고 가정한다.

 

from circle import ci_circle 

def ci_circle(rad):
    print("둘레", rad * 2 * 3.14)

def main():
    r = float(input("반지름 입력: " ))
    print(ci_circle(r))        #cricle 모듈의 rad * 2 * PI를 출력
    print(ci_circle(r))        #ci_circle(rad)함수의 print("둘레", rad * 2 * 3.14) 출력

위의 경우에 만들어 놓은 함수와 불러올 모듈의 함수 이름이 겹치게 된다.
이런 상황에서는 파이썬이 이름 구분 할 수 없기 때문에 함수를 호출하는 순간에 오류가 생긴다.


이럴 때 해결하는 방법이 바로 as를 통해 이름을 바꾸는 것이다.

 

 

from circle import ci_circle as cc

def ci_circle(rad):
    print("둘레", rad * 2 * 3.14)

def main():
    r = float(input("반지름 입력: " ))
    print(cc(r))                #cricle 모듈의 rad * 2 * PI를 출력
    print(ci_circle(r))      #ci_circle(rad)함수의 print("둘레", rad * 2 * 3.14) 출력

[from + 모듈 + import + 모듈의 함수 이름 + as + 바꿀 모듈의 함수 이름] 
즉 circle라는 모듈로부터 ci_circle함수를 호출하는데 그 이름을 cc로 바꾸겠다는 소리이다.

이렇게 되면 이름이 겹치지 않기에 오류가 발생하지 않는다.

 

as를 통해 이름을 바꾸면, 모듈 내부 함수의 이름이 완전히 변경되는 것이 아니라

가져다 쓰는 동안에만 바뀌는 것이다. 원본은 안 변한다고 생각하자. 

 

 

 

import circle as cc
def main():
    ar = cc.ar.circle(r)
    ...

이렇게 모듈 전체를 import 할 때, 이름을 변경해도 된다.

 

 

 

 

 

 

 

빌트인함수 : import 선언 없이 그냥 언제든 호출 가능한 함수

빌트인 모듈 : 위치 신경 쓰지 않고 언제든 import 할 수 있는 모듈 
 

즉 파이썬에 기본적으로 있음

 

빌트인 함수의 예시 중 일부로는 print와 input 등이 있고,
빌트인 모듈의 예시 중 하나로는 math가 있다

import math                     #빌트인 모듈 중 하나인 math를 선언 
print(math.fabs(-10))      #fabs()는 전달된 값의 절대 값을 반환해 준다. 즉 10이 출력 


ex)
math.sin(x)    #sin x
math.cos(x)    #cos x
math.tan(x)    #tan x
. . . 

'프로그래밍 언어 > 파이썬 기초' 카테고리의 다른 글

파이썬 지역변수와 전역변수  (0) 2023.06.06
파이썬 딕셔너리  (0) 2023.06.04
파이썬 함수 매개변수 등  (0) 2023.05.23
파이썬 튜플,range  (0) 2023.05.23
파이썬 for문,while문  (0) 2023.05.23
'프로그래밍 언어/파이썬 기초' 카테고리의 다른 글
  • 파이썬 지역변수와 전역변수
  • 파이썬 딕셔너리
  • 파이썬 함수 매개변수 등
  • 파이썬 튜플,range
tteokbokki-master
tteokbokki-master
공부하며 알아가는 걸 조금씩 정리하고 있어요
  • tteokbokki-master
    용로그
    tteokbokki-master
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 프로그래밍 언어
        • HTML & CSS
        • JavaScript
        • React 기초
        • 파이썬 기초
        • TanStack-Query
        • C언어 기초
        • git
        • 리눅스
        • 코딩테스트 공부
      • 개발 지식
      • 언어학
        • 의미론
      • 회고 및 기록
      • 프로젝트
        • TodoList 만들기
        • 학수고대 프로젝트
      • 기타
        • [JS-0기] 한입 FE 챌린지
        • 서평
  • 인기 글

  • 글쓰기 / 관리
  • hELLO· Designed By정상우.v4.10.3
tteokbokki-master
파이썬 모듈 import
상단으로

티스토리툴바