공부중
[python] 모듈(Module) 본문
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 ... 문을 사용하는 것입니다.
- 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__ 변수는 해당 모듈의 이름 (파일 이름)으로 설정됩니다.
여러 모듈 소개
'프로그래밍 > 파이썬 Python' 카테고리의 다른 글
[Python] 객체 지향 프로그래밍(object-oriented programming) (0) | 2024.08.13 |
---|---|
[python] File(파일) (0) | 2024.08.12 |
[python]자료구조 (리스트, 튜플, Dictionary, Set) (0) | 2024.08.12 |
[Python] 함수 (0) | 2024.08.11 |
[Python] 조건문, 반복문 (0) | 2024.08.09 |