파이썬 모듈

2024. 4. 15. 10:20파이썬

모듈의 필요성

파이썬 모듈은 여러 함수 및 변수가 정의되어 있는 파일이라고 이전 포스팅에 설명해두었습니다.

https://fulladdr.tistory.com/99

 

파이썬 함수

내장함수 파이썬 개발자들이 이미 만들어둔 함수를 '내장함수' 라고 합니다. print(), len() 등의 함수는 우리가 직접 구현할 필요없이 가져다가 쓰면 됩니다. 사용자 지정 함수 사용자가 새롭게 작

fulladdr.tistory.com

 

모듈은 특정 목적을 가진 함수, 자료의 모임입니다. 직접 사용자가 모듈을 작성하는 것도 가능하지만, 미리 만들어진 모듈을 불러와 사용한다면 편리하게 프로그래밍이 가능하다는 장점을 갖습니다.

 

모듈 사용법

 

1. 파이썬에서 모듈을 사용하려면 먼저 'import'라는 키워드를 사용해 모듈을 불러와야 합니다.

import x를 선언하면 x 모듈을 불러오게 됩니다.

 

2. 모듈 속 사용하려는 함수/변수의 사용법을 확인합니다.

 

3. 모듈을 사용하는 방법은 '.'을 사용하게 됩니다.

 

.을 사용한 후에 모듈 속의 함수와 변수를 사용하면 됩니다. 

x 모듈에 있는 a라는 함수를 쓰고 싶다면, x.a 를 선언하면 됩니다.

 

모듈 만들기

사용자가 직접 원하는 모듈을 만드는 것이 가능합니다.

모듈은 '.py' (파이썬 파일로 만들 수 있습니다.

 

만드는 방법

 

1. py 파일을 생성한 후, 안에 함수와 변수를 만듭니다.

# calculate.py
def plus(a, b):
	return a+b

 

2. import를 해서 calculate 모듈을 불러옵니다

import calculate

 

 

import를 하게 되면 plus 함수를 어디서든 쓸 수 있습니다.

 

3. 실제 사용

import calculate
print(calculate.plus(1,2))

 

이런식으로 모듈을 사용하면 됩니다.

 

모듈 활용

import math # math 모듈을 가져옴
print(math.pi)
print(math.e)

 

이미 정의된 math라는 모듈을 사용하는 과정입니다. math 모듈을 가져와서, 정의된 pi, e 변수를 프린트한 상황입니다.

 

패키지

패키지는 모듈을 폴더로 구분해 관리하는 것을 의미합니다.

 

project/
    sound/
    audio/
    script/ # .py, .py : 각각이 모듈

 

 

패키지를 통해서 모듈을 편리하게 관리할 수 있습니다

가령 sound는 소리와 관련된 모듈만, script는 대본에 관한 모듈만 따로 나누어 편리하게 관리가 가능합니다. 

 

project/sound에 있는 plus 이라는 함수를 사용한다고 생각해봅시다. 이 때 어떻게 plus함수를 실행할 수 있을까요? 사용법에는 크게 두가지 방법이 있습니다.

 

1. import

import project.sound # project 폴더 안에 있는 sound 모듈을 불러오겠다

print(sound.plus())

 

첫번째로는 import 문을 사용해 모듈을 가져오는 방식입니다.

해당 방식을 사용하게 되면, 앞서 설명한 것과 마찬가지로 .을 사용해 모듈에 정의된 함수를 사용할 수 있습니다. 

 

2. from - import

두번째 방식은 from - import를 사용하는 것입니다.

해당 구문은 project안에 있는 sound 모듈로부터 plus라는 함수나 모듈을 가지고 오겠다는 뜻이 됩니다.

 

이 때, import를 사용하게 되면 sound.plus를 사용하지 않아도 됩니다. 왜냐하면 project.sound 안에 있는 plus를 사용하겠

다고 명시를 했기 때문입니다. 

 

from project.sound import plus

print(plus(3,4)) # sound.plus라고 쓰지 않아도 된다

 

 

그런데 만약에 이 파일에 이미 plus가 있다면, 충돌이 일어날 수 있습니다. 가령 파일에 이미 plus가 정의가 되어 있었다면, 혹은 import한 다른 모듈에서 plus가 정의 되어 있었다면, 충돌이 일어나 어떤 모듈의 plus를 의미하는지가 모호해질 수 있다는 점을 알아야합니다.

 

수고하셨습니당

'파이썬' 카테고리의 다른 글

Pandas  (0) 2024.04.19
파이썬 함수  (0) 2024.04.15
파이썬 자료형 - 문자열, 리스트, 튜플, 딕셔너리  (0) 2024.04.15