≣ 목차
파이썬은 코드의 재사용성과 가독성을 높이기 위해 함수, 모듈, 패키지라는 중요한 개념들을 제공합니다. 이 글에서는 파이썬의 함수 정의부터 모듈과 패키지를 사용해 대규모 프로젝트를 효율적으로 관리하는 방법까지 자세히 다루어 보겠습니다.
♛ 공지
본 포스팅의 무단도용 및 배포를 금지합니다.
1. 파이썬 함수란?
함수는 특정 작업을 수행하는 코드 블록으로, 필요할 때마다 재사용할 수 있게 해줍니다. 파이썬에서 함수는 def 키워드를 사용해 정의합니다.
1.1 함수 정의하기
def greet(name):
print(f"Hello, {name}!")
greet("Alice") # Hello, Alice!
위 예제에서 greet 함수는 인자를 받아서 그 이름으로 인사하는 기능을 합니다.
1.2 반환값이 있는 함수
함수는 return 키워드를 사용해 값을 반환할 수 있습니다.
def add(a, b):
return a + b
result = add(3, 5)
print(result) # 8
add 함수는 두 숫자를 더하고 그 결과를 반환합니다.
1.3 기본 인자와 가변 인자
- 기본 인자: 기본 값을 설정하여 함수 호출 시 인자를 생략할 수 있습니다.
- 가변 인자: 인자의 개수가 가변적인 경우 *args와 **kwargs를 사용합니다.
def greet(name, message="Hello"):
print(f"{message}, {name}!")
greet("Alice") # Hello, Alice!
greet("Bob", "Hi") # Hi, Bob!
# 가변 인자 사용
def print_numbers(*args):
for number in args:
print(number)
print_numbers(1, 2, 3, 4) # 1 2 3 4
greet 함수는 message 인자의 기본 값을 가지며, print_numbers는 여러 개의 숫자를 인자로 받을 수 있습니다.
2. 파이썬 모듈이란?
모듈은 파이썬 파일(.py)로, 관련된 함수와 클래스를 모아 놓은 것입니다. 모듈을 사용하면 코드를 분리하고 재사용할 수 있습니다.
2.1 모듈 가져오기
파이썬 표준 라이브러리의 모듈이나 사용자 정의 모듈을 import 키워드를 사용해 가져올 수 있습니다.
import math
print(math.sqrt(16)) # 4.0
위 예제에서 math 모듈을 가져와 제곱근을 계산하는 함수를 사용했습니다.
2.2 모듈에서 특정 항목만 가져오기
모듈의 특정 함수나 변수를 가져오려면 from ... import ... 구문을 사용합니다.
from math import pi, pow
print(pi) # 3.141592653589793
print(pow(2, 3)) # 8.0
math 모듈에서 pi와 pow 함수만 가져와 사용했습니다.
2.3 사용자 정의 모듈 만들기
사용자 정의 모듈은 새로운 .py 파일을 만들어 사용할 수 있습니다.
my_module.py 파일:
def say_hello():
print("Hello from my_module!")
다른 파일에서 이를 가져와 사용하기:
import my_module
my_module.say_hello() # Hello from my_module!
이처럼 모듈을 분리하면 코드의 가독성과 재사용성을 높일 수 있습니다.
3. 파이썬 패키지란?
패키지는 여러 모듈을 디렉토리 구조로 묶은 것입니다. 패키지를 사용하면 대규모 프로젝트를 논리적으로 구성할 수 있습니다.
3.1 패키지 구조
패키지는 디렉토리이며, __init__.py 파일을 포함하여 여러 모듈을 포함할 수 있습니다. 예를 들어 다음과 같은 구조의 패키지를 만들 수 있습니다.
my_package/
__init__.py
module1.py
module2.py
- __init__.py 파일은 해당 디렉토리가 패키지임을 파이썬에 알리는 역할을 합니다. 파이썬 3.3 이후로는 이 파일이 없어도 패키지로 인식되지만, 여전히 패키지 초기화 코드를 넣는 용도로 사용됩니다.
3.2 패키지 가져오기
패키지 내의 모듈을 가져오려면 다음과 같이 사용할 수 있습니다.
from my_package import module1
module1.some_function()
이처럼 패키지를 통해 관련된 기능을 모듈별로 나누어 관리할 수 있습니다.
4. 모듈과 패키지의 활용 예시
- 표준 라이브러리 모듈: os, sys, datetime 등은 자주 사용되는 파이썬 표준 라이브러리입니다. 예를 들어, os 모듈을 사용하면 파일 시스템을 쉽게 다룰 수 있습니다.
- 서드파티 패키지: numpy, pandas, requests와 같은 서드파티 패키지는 특정 기능을 쉽게 구현할 수 있도록 도와줍니다. 이들은 pip를 사용해 설치할 수 있습니다.
pip install requests
설치 후:
import requests
response = requests.get("https://api.github.com")
print(response.status_code) # 200
서드파티 패키지를 활용하면 복잡한 작업을 간단하게 처리할 수 있습니다.
5. 사람들이 자주 묻는 질문들
5.1 함수와 메서드의 차이점은 무엇인가요?
함수는 독립적으로 정의된 코드 블록이며, 메서드는 클래스 내에 정의된 함수로, 특정 객체에서 호출됩니다. 모든 메서드는 함수이지만, 모든 함수가 메서드는 아닙니다.
5.2 모듈과 패키지의 차이점은 무엇인가요?
- 모듈은 하나의 파이썬 파일(.py)로, 관련된 코드의 묶음입니다.
- 패키지는 여러 모듈을 디렉토리 구조로 묶은 것으로, 대규모 프로젝트의 논리적 구성을 위해 사용됩니다.
5.3 import와 from ... import ...의 차이점은 무엇인가요?
- import는 전체 모듈을 가져와서 사용할 때 사용합니다.
- from ... import ...는 모듈 내의 특정 함수나 변수를 가져올 때 사용하여, 코드의 가독성을 높이고 간결하게 만듭니다.
예시:
# import를 사용하는 경우
import math
print(math.sqrt(16)) # 4.0
print(math.pi) # 3.141592653589793
# from ... import ...을 사용하는 경우
from math import sqrt, pi
print(sqrt(16)) # 4.0
print(pi) # 3.141592653589793
위 예시에서 import math를 사용하면 모듈 이름을 항상 함께 사용해야 하지만, from math import sqrt, pi를 사용하면 함수와 변수를 직접 호출할 수 있어 코드가 간결해집니다.
파이썬의 함수, 모듈, 패키지는 코드의 재사용성과 유지보수성을 높이는 데 매우 중요한 요소입니다. 함수는 반복적인 작업을 줄이고, 모듈은 코드를 논리적으로 분리하며, 패키지는 대규모 프로젝트를 체계적으로 구성할 수 있게 해줍니다. 이번 글이 파이썬의 함수, 모듈, 패키지를 이해하는 데 도움이 되었길 바랍니다. 추가로 궁금한 점이 있다면 언제든지 문의해주세요.
'프로그래밍 > 파이썬(Python)' 카테고리의 다른 글
파이썬(Python) 하위 패키지: 완벽 가이드 (+코드) (4) | 2024.10.15 |
---|---|
파이선(Python) from import: 심화편 (2) | 2024.10.15 |
파이썬(Python) 클래스: 완벽 가이드 (+코드) (3) | 2024.10.15 |
파이썬(Python) 매직 메서드: 완벽 가이드 (+코드) (3) | 2024.10.15 |
파이썬(Python) Slicing: 완벽 가이드 (+코드) (2) | 2024.10.15 |