본문 바로가기

언어/Python

[ Python ] 패키지, 모듈, 객체의 관계에 대해서 알아보자.

반응형

파이썬에서 패키지, 모듈, 객체는 코드의 구조와 재사용성을 높이기 위해 사용되는 중요한 개념입니다. 각 개념의 관계와 역할을 살펴보겠습니다.

1. 모듈 (Module)

모듈은 파이썬 코드가 담긴 파일입니다. 파일의 확장자는 .py입니다. 모듈은 관련된 함수, 클래스, 변수들을 하나의 파일에 모아둔 것입니다. 모듈은 다른 모듈에서 가져와(import) 사용할 수 있습니다.

예시:

# my_module.py
def greet(name):
    return f"Hello, {name}!"

# 다른 파일에서 my_module 사용하기
import my_module

print(my_module.greet("Alice"))

2. 패키지 (Package)

패키지는 여러 모듈을 디렉토리 구조로 묶어놓은 것입니다. 패키지 자체도 모듈로 간주되며, 패키지 디렉토리에는 __init__.py 파일이 포함되어야 합니다. 이 파일은 해당 디렉토리가 패키지의 일부임을 나타냅니다. 패키지는 모듈을 논리적으로 그룹화하고, 더 큰 프로젝트에서 모듈들을 체계적으로 관리할 수 있게 합니다.

예시:

mypackage/
    __init__.py
    module1.py
    module2.py

사용 예시:

# mypackage/module1.py
def func1():
    return "Function 1"

# mypackage/module2.py
def func2():
    return "Function 2"

# 다른 파일에서 패키지 사용하기
from mypackage import module1, module2

print(module1.func1())
print(module2.func2())

3. 객체 (Object)

객체는 클래스의 인스턴스(instance)입니다. 클래스는 객체의 청사진(blueprint)으로, 데이터(속성)와 행동(메소드)을 정의합니다. 객체는 클래스에서 정의된 속성 값과 메소드를 가지며, 이를 통해 다양한 작업을 수행할 수 있습니다.

예시:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def greet(self):
        return f"Hello, my name is {self.name} and I am {self.age} years old."

# 객체 생성
person1 = Person("Alice", 30)
person2 = Person("Bob", 25)

print(person1.greet())
print(person2.greet())

4. 관계 정리

  • 모듈은 파이썬 파일로서 함수, 클래스, 변수를 포함할 수 있으며, 다른 모듈에서 가져와 사용할 수 있습니다.
  • 패키지는 여러 모듈을 포함하는 디렉토리이며, 모듈들을 논리적으로 그룹화합니다.
  • 객체는 클래스를 기반으로 생성되며, 클래스는 모듈 내에 정의될 수 있습니다. 객체는 클래스의 인스턴스로, 클래스에서 정의한 속성과 메소드를 가집니다.

이러한 구조를 통해 파이썬 코드는 모듈화되고 재사용 가능하며, 유지보수가 용이해집니다.

반응형