공부중

[python] 모듈(Module) 본문

프로그래밍/파이썬 Python

[python] 모듈(Module)

복습 2024. 8. 14. 13:32
728x90

1. 모듈

관련된 상수, 함수 또는 클래스 등을 모아놓은 파일

 

모듈을 사용하는 것은 Python 프로그래밍에서 코드의 재사용성을 높이고, 프로젝트를 체계적으로 관리할 수 있는 좋은 방법입니다. 모듈은 함수, 변수, 클래스 등을 포함하는 Python 파일입니다. 다른 Python 스크립트에서 이러한 모듈을 불러와 그 내용을 사용할 수 있습니다.

 

모듈 이름은 파일 이름과 일치해야 하며, Python 파일은 모듈을 포함하는 동일한 디렉토리에 있거나 Python의 라이브러리 경로에 있어야 합니다.

 

 

 

모듈 생성하기

모듈 파일 만들기: Python 모듈은 .py 확장자를 가진 파일입니다. 예를 들어, mymodule.py라는 이름의 파일을 만들고 Python 코드를 작성합니다.

# mymodule.py
def hello():
    print("Hello, welcome to my module!")

class Greeter:
    def greet(self):
        print("Hello from a class!")

MY_CONSTANT = "Some constant value"

 

 

 

모듈 사용하기

모듈을 사용하는 주요 방법은 import와 from ... import ... 문을 사용하는 것입니다.

  1. import 사용하기:
    • 전체 모듈을 불러올 때 사용합니다.
    • 모듈 내의 모든 함수, 변수, 클래스에 접근하려면 모듈 이름을 사용하여 접근해야 합니다.
import mymodule

mymodule.hello()  # 함수 호출
g = mymodule.Greeter()  # 클래스 인스턴스 생성
g.greet()  # 클래스 메서드 호출
print(mymodule.MY_CONSTANT)  # 상수 출력

 

 

2. from ... import ... 사용하기:

  • 특정 함수, 클래스 또는 변수만 선택적으로 불러올 때 사용합니다.
  • 불러온 요소는 모듈 이름 없이 직접 사용할 수 있습니다.
from mymodule import hello, Greeter, MY_CONSTANT

hello()  # 직접 호출
g = Greeter()  # 바로 클래스 인스턴스 생성
g.greet()
print(MY_CONSTANT)  # 상수 출력

 

 

3. import ... as ... 사용하기:

  • 모듈이나 모듈 내의 요소를 다른 이름으로 불러올 때 사용합니다. 이는 이름 충돌을 방지하거나 더 간편한 이름을 사용하고 싶을 때 유용합니다.
import mymodule as mm
from mymodule import Greeter as G

mm.hello()  # 모듈 별칭을 사용하여 호출
g = G()  # 클래스에 별칭을 사용
g.greet()

 

 

 

 

 

2. 모듈 경로가 다르면...

import sys
sys.path.append('/path/to/your/module/directory')

import yourmodule

 

 

2.3. 패키지로 관리하기

모듈을 파이썬 패키지 형태로 구성하고 __init__.py 파일을 포함시키면, 패키지 내에서 상대 경로로 다른 모듈을 임포트할 수 있습니다. 패키지 디렉토리 안에 있는 모듈은 서로 상대 경로를 사용하여 쉽게 임포트할 수 있습니다.

 

 

2. 4. setuptools와 pip 사용하기

개발한 모듈을 설치 가능한 패키지로 만들어 pip를 통해 설치하는 방법도 있습니다. 이 경우, 모듈은 파이썬 환경의 사이트 패키지 디렉토리에 설치되어 어디에서나 임포트할 수 있게 됩니다.

  • setup.py 파일을 만들고 설정을 구성합니다
from setuptools import setup, find_packages

setup(
    name='your_package',
    version='0.1',
    packages=find_packages(),
    install_requires=[],
)

 

 

다음 명령어로 패키지를 설치합니다

pip install .

 

 

 

3. __name__ 변수

 

__name__ 변수의 작동 방식

  • 스크립트가 직접 실행될 때, 즉 커맨드 라인에서 python script.py와 같은 방식으로 실행되면, __name__ 변수는 "__main__"으로 설정됩니다.
  • 만약 스크립트가 다른 파일에서 임포트되어 사용될 경우, __name__ 변수는 그 스크립트의 파일 이름(확장자 .py 없이)으로 설정됩니다.

 

왜 __name__ 변수를 사용할까요?

__name__ 변수를 사용하는 주요 이유는 특정 코드 블록을 스크립트가 직접 실행될 때만 실행하도록 제어하기 위해서입니다. 예를 들어, 모듈에 테스트 코드나 데모 코드를 포함시키고 싶지만, 이 모듈이 다른 곳에서 임포트될 때는 이 코드들이 실행되지 않게 하고 싶을 때 유용합니다.

 

# filename: mymodule.py

def func():
    print("Function is running")

if __name__ == "__main__":
    print("This script is running as the main program")
    func()
else:
    print("This script has been imported")

 

 

__name__ 변수의 값:

  • "main": 만약 스크립트가 직접 실행되는 경우 (즉, 커맨드라인에서 python filename.py 같이 실행할 때), __name__ 변수는 "__main__"로 설정됩니다. 이는 스크립트가 "메인" 프로그램으로 실행되고 있음을 의미합니다.
  • 모듈 이름: 스크립트가 다른 파일에서 임포트되어 사용될 경우 (예를 들어, 다른 스크립트에서 import filename을 통해 임포트하는 경우), __name__ 변수는 해당 모듈의 이름 (파일 이름)으로 설정됩니다.

 

 

 


여러 모듈 소개 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90