파이썬 - 모듈
안녕하세요, 미래의 파이썬 마법사 여러분! 오늘, 우리는 파이썬 모듈의 세계로 흥미진진한 여정을 떠날 거예요. 프로그래밍에 새로운 사람이라도 걱정하지 마세요; 저는 여러분의 친절한 가이드로서 모든 것을 단계별로 설명해 드릴 거예요. 그럼, 가상의 지팡이(키보드)를 잡고, 함께 빠져들어보죠!
파이썬 모듈
여러분이 마법의 зам(프로그램)을 지어갈 때, 모든 것을cratch에서부터 만들지 않고, 그냥 맞춰서 사용할 수 있는 사전에 지어진 타워, 벽, 그리고 문을 가지고 있었는가요? 이것이 바로 파이썬에서 모듈이랄 거예요 - 여러분의 프로그램에서 쉽게 사용할 수 있는 사전에 작성된 코드입니다.
파이썬 내장 모듈
파이썬에는 내장 모듈의 보물 상자가 딸려 있습니다. 이는 바로 사용할 수 있는 무료 마법 주문과 같아요. 한 가지를 시도해 보죠!
import random
# 1에서 10 사이의 랜덤 숫자 생성
magic_number = random.randint(1, 10)
print(f"Your magic number is: {magic_number}")
이 예제에서는 random
모듈을 사용하여 랜덤 숫자를 생성하고 있습니다. 마치 숫자로 말썽을 내는 것처럼 보이죠!
파이썬 사용자 정의 모듈
내장 모듈은 좋지만, 가끔 여러분 자신의 마법 주문을 만들어야 할 때가 있습니다. 그럴 때는 사용자 정의 모듈이 매우 유용합니다.
파이썬 모듈 생성
간단한 모듈을 magic_spells.py
라는 이름으로 만들어 보죠:
# magic_spells.py
def levitate(object):
return f"{object} is floating in the air!"
def disappear(object):
return f"{object} has vanished into thin air!"
이제 우리는 두 가지 마법 기능이 있는 우리 자신의 모듈을 가지고 있습니다!
import 문
새로 만든 모듈을 사용하려면, 이를 임포트해야 합니다:
import magic_spells
# 우리의 모듈에서 함수를 사용
print(magic_spells.levitate("book"))
print(magic_spells.disappear("rabbit"))
출력:
book is floating in the air!
rabbit has vanished into thin air!
from ... import 문
가끔, 모듈에서 특정 주문만 필요할 때가 있습니다. 그럴 때는 from ... import
가 유용합니다:
from magic_spells import levitate
# 이제 magic_spells 접두사 없이 직접 levitate를 사용할 수 있습니다
print(levitate("chair"))
출력:
chair is floating in the air!
from...import * 문
모듈의 모든 주문을 임포트하려면 from...import *
를 사용할 수 있습니다:
from magic_spells import *
# 이제 모든 함수를 직접 사용할 수 있습니다
print(levitate("table"))
print(disappear("hat"))
하지만, 주의하세요! 이는 마치 판도라의 상자를 열었을 때와 같아요 - 같은 이름의 기존 함수를 우연히 덮어쓰게 될 수 있습니다.
import ... as 문
가끔 모듈 이름이 길거나 혼란스러울 때, import ... as
를 사용하여 별명을 지을 수 있습니다:
import magic_spells as spells
print(spells.levitate("pencil"))
모듈 위치
파이썬은 여러 곳에서 모듈을 찾습니다:
- 현재 디렉토리
- PYTHONPATH (설정된 경우)
- 설치에 따른 기본 디렉토리
PYTHONPATH 변수
PYTHONPATH는 파이썬이 추가 모듈을 어디에서 찾을지 알려주는 마법의 지도와 같습니다. 시스템 환경 변수에 설정할 수 있습니다.
네임스페이스와 스코프
네임스페이스는 여러분의 마법 세계의 다른 영역과 같습니다. 각 모듈은 자신의 네임스페이스를 가지고 있어, 같은 이름의 함수나 변수 간의 충돌을 방지합니다.
모듈 속성
모듈은 특별한 속성을 가집니다. 몇 가지를 탐구해 보죠:
import magic_spells
print(magic_spells.__name__) # 모듈의 이름 출력
print(magic_spells.__file__) # 모듈의 파일 경로 출력
name 속성
__name__
속성은 특별합니다. 스크립트가 직접 실행될 때 __main__
이고, 임포트될 때 모듈의 이름이 됩니다.
# magic_spells.py에 추가:
if __name__ == "__main__":
print("This module is being run directly")
else:
print("This module is being imported")
dir() 함수
dir()
함수는 모듈에 정의된 모든 이름을 보여주는 마법의 거울과 같습니다:
import magic_spells
print(dir(magic_spells))
reload() 함수
모듈에 변경을 가하고 파이썬을 다시 시작하지 않고 재로드하려면 reload()
를 사용할 수 있습니다:
from importlib import reload
import magic_spells
# magic_spells.py에 변경
reload(magic_spells)
파이썬의 패키지
패키지는 여러 모듈을 포함하는 마법의 책과 같습니다. 이들은 간단히 __init__.py
파일이 있는 디렉토리입니다.
다음은 우리가 배운 임포트 방법을 요약한 표입니다:
방법 | 문법 | 예제 |
---|---|---|
기본 임포트 | import module_name |
import magic_spells |
From 임포트 | from module_name import function_name |
from magic_spells import levitate |
모두 임포트 | from module_name import * |
from magic_spells import * |
별명으로 임포트 | import module_name as alias |
import magic_spells as spells |
그리고 여기 있습니다, 제자들! 여러분은 파이썬 모듈의 기본을 배웠습니다. 기억하세요, 연습이 완벽을 만듭니다. 다양한 모듈을 실험해 보고, 여러분 자신의 마법의 파이썬 세계를 만들어 보세요. 코딩을 즐겁게!
Credits: Image by storyset