모듈이란 함수나 변수 또는 클래스를 모아 놓은 파일이다.
모듈은 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬 파일이라고도 할 수 있다.
우리는 파이썬으로 프로그래밍을 할 때 굉장히 많은 모듈을 사용한다.
다른 사람들이 이미 만들어 놓은 모듈을 사용할 수도 있고 우리가 직접 만들어서 사용할 수도 있다
circle.py
# %% module Test
PI = 3.14 #원주율
def ar_circle(rad): #원의 넓이를 계산해서 반환하는 함수
return rad*rad*PI
def ci_circle(rad): #원의 둘레를 계산해서 반환하는 함수
return rad*2*PI
circle_test1.py
import circle #circle.py 모듈을 가져다 쓰겠다는 선언
def main():
r=float(input("반지름 입력: "))
ar=circle.ar_circle(r) #circle.py의 ar_circle 함수 호출
print("넓이: ", ar)
ci=circle.ci_circle(r)
print("둘레: ", ci)
main()
반지름 입력: 5
넓이: 78.5
둘레: 31.400000000000002
반지름 입력: 5.5
넓이: 94.985
둘레: 34.54
from turtle import circle
from circle import ar_circle
from circle import ci_circle
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()
반지름 입력: 5
넓이: 78.5
둘레: 31.400000000000002
다수의 모듈을 import 하게 될 경우
from circle import ar_circle
from circle import ci_circle
#다음과 같이 작성 가능하다
from circle import ar_circle,ci_circle
from circle import ci_circle as cc #모듈에서 가져온 ci_circle의 임시이름을 cc로 하겠다!
""" def ci_circle(rad):
return rad*2*PI """
def ci_circle(rad): #내가 여기서 만든 ci_circle 함수
print("둘레: ", rad*2*3.14)
def main():
r=float(input("반지름 입력: "))
ci_circle(r) #circle_simple2.py
cc(r) #circle.py 에서 가져온 ci_circle의 임시이름 cc
main()
함수 이름이 같을 경우
모듈에서 가져온 것인지 내가 새로 만들어낸 것인지 파이썬은 알 수 없다
따라서 둘 중 하나의 이름을 변경해주어야 한다
내가 잠깐 사용하는 동안에만 이름을 바꿔주는 것은 문제가 되지 않는다
내가 만든 함수이름도, 모듈에서 가져온 함수 이름도 이유가 있어서 그렇게 지어놨기 때문에
그 함수를 가져와서 사용하는 동안에만 이름을 붙여준다(애칭같은 느낌) as //키워드
as cc
=>
def ci_circle(rad):
return rad*2*PI
모듈의 이름을 임의적으로 바꾼다는 건 그렇게 권장하진 않으나 많이 사용한다
수학 관련 모듈
빌트인 함수
import 선언 없이 그냥 언제든 호출 가능한 함수
빌트인 모듈
위치 신경 쓰지 않고 언제든 import 할 수 있는 함수
>>>print
<built-in function print>
>>>input
<built-in function input>
728x90
'Dev. > Python' 카테고리의 다른 글
python :: 전역변수와 지역변수 (0) | 2022.07.14 |
---|---|
python :: Dictionary 딕셔너리 (0) | 2022.07.12 |
python :: 튜플과 레인지 (0) | 2022.07.01 |
python :: if ~ elif~ else / 연산자 예제 (0) | 2022.06.30 |
Python :: 컬렉션 - List (0) | 2022.06.29 |
댓글