Language/Python

Python 공부정리 - 패키지, 모듈

Tarel 2023. 2. 3. 11:35

1. 기본 모듈 가져오기

파이썬에는 기본적으로 지원하는 모듈이 있고

개발자가 직접 만들 수도 있다.

지금은 파이썬에서 지원하는 모듈을 가져와보자

 

1-1. math 모듈 가져오기

파이썬에선 수학적인 계산을 위해서, math라는 모듈을 지원한다.

이것을 가져와서 사용해보자

import math as m        #수학모듈 사용하기, math를 m으로 줄인다.

print(m.pi)
print(m.tan(0))
print(m.ceil(3.78))
print(2 ** 10)
print(m.pow(2, 10))

# 실행결과
# 3.141592653589793
# 0.0
# 4
# 1024
# 1024.0

 

import 키워드를 통해서 math를 가져왔다.

그런데 math라는 이름이 길어서 마음에 들지 않아서 이를 m으로 줄였다.

만약 math라는 이름을 그대로 사용하고 싶다면 그냥 import math 라고만 적어주면 된다.

 

아무튼 여기선 math가 m이라는 키워드로 축약되었고 m에는 많은 메서드가 있다.

이 math에서 어떤 것들을 사용하는지 궁금하다면 math라는 글자를 ctrl 키를 누른체로 눌러보면 알 수 있다.

 

보시다시피 내부 문서가 꽤나 길다.

그리고 이 문서 내부 함수를 보면 acos, acosh 등이 있으며 사진에는 나오지 않았지만 이 아래에도 잔뜩 있다.

이 함수가 math가 지원하는 함수이므로 우리는 math를 통해 무엇을 할 수 있는지 알 수 있다.

math문서에 들어가서 알아보는 것이 귀찮다면 굳이 들어가보지 않아도 된다.

이렇게 축약된 키워드만 가져와도 자동완성에 사용할 수 있는 기능들이 나열된다.

 

1-2. random 모듈 가져오기

이번엔 random 모듈을 가져와서 간단한 로또번호 추첨기를 만들어보자

import random

numbers = [i for i in range(1, 46)]
lottery = []

for i in range(6):
    lottery.append(random.choice(numbers))

print(lottery)

# 실행결과
# [21, 38, 32, 23, 16, 1]

이 로또추첨기는 중복을 제외하지 못하는 등 여러 부실한 부분이 있지만

어디까지나 예시이므로 간단하게만 보고 넘어가자.

 

2. 내가 만든 모듈 가져오기

나는 code17_calculator.py (이하 code17)라는 계산기 코드를 만들었고 이걸 모듈로써 code_28_use_calculator.py파일(이하 code28)에서 사용하고자 한다.

 

우선 code17 계산기 코드부터 살펴보자

def calc (option, *args):
    result = 0
    if option == 'add':
        for i in args:
            result += i
    elif option =='sub':
        result = args[0]
        for i in args[1:]:
            result -= i
    elif option == 'mul':
        result = 1
        for i in args:
            result *= i
    elif option == 'div':
        result = args[0]
        for i in args[1:]:
            result /= i
    return result

def new_calc(x,y):
    return (x * y , x / y, x+y, x-y)

이 코드는 calc 함수에서 option 값이 add냐 sub냐 mul이나 div냐에 따라, 추가로 입력받은 값을 사칙연산하는 코드다.

 

이걸 code28에서 임포트 해서 사용해보자

from code17_calculator import *

print(calc('add',5,7,17))

# 실행결과
# 29

from에는 파일 이름을 넣는다.

그리고 import에는 불러올 함수를 적는데 만약 모든 함수를 가져오고 싶다면 위와 같이 *을 넣으면 된다.

이제 code17의 calc 함수와 new_calc 함수를 사용할 수 있게 된다.

 

3. 모듈

파이썬에는 메인에 해당하는 파일이 있다.

내 폴더 안의 수 많은 파이썬 파일 중, 실행 한 파일이 메인이 된다.

 

위 사진을 보면 Day05라는 폴더에 여러가지 파이썬 파일이 있다.

이때, code30_module_main.py를 실행하면 이 파일이 메인이 된다.

print(f'code30_module_name:{__name__}')

# 실행결과
# code30_module_name:__main__

code30_module_main.py의 내용이다.

실행하면 이 파일이 메인임을 나타내고 있다.

이번엔 code29에 같은 내용을 적고 code30에다 임포트를 하고 code30 파일을 실행해보자

 

# code29_module_main.py 파일의 내용
print(f'code29_module_name:{__name__}')
# code30_module_main.py 파일의 내용을 아래처럼 수정
import code29_module_main

print(f'code30_module_name:{__name__}')

이제 code30_module_main.py를 실행하면 다음과 같이 나온다.

# 실행결과
code29_module_name:code29_module_main
code30_module_name:__main__

실행한 파일인 code30_module_main.py가 main이 되고 29번 파일은 다른걸로 바뀐 것을 알 수 있다.