파이썬 모듈 함수 및 활용법

YeHee·2024년 12월 18일

⏰ 2024.12.18 (D+50)

1. 모듈 도큐먼트화 주석과 name 사용

  • 파이썬에서 모듈은 재사용 가능한 코드 단위를 의미하며, 각 모듈은 하나의 .py 파일로 존재
  • 모듈 내에서 중요한 역할을 하는 속성 중 하나는 __name__
  • __name__은 모듈이 직접 실행될 때는 "__main__" 값을 갖고, 다른 모듈에서 임포트될 때는 모듈의 이름을 갖는다

📖 예시 __name__ 확인

# module1.py
print('module1.py:', __name__, sep='')
  • 직접 실행 시: __name__"__main__"로 출력
  • 다른 파일에서 import 시: 해당 모듈의 이름이 출력

2. 모듈 내용: 변수, 함수, 클래스

  • 모듈에서는 변수, 함수, 클래스 등을 정의 가능
  • _if __name__ == '__main__'_:
    블록 안에서 코드가 실행되면, 해당 모듈을 직접 실행하는 경우에만 실행
  • 다른 파일에서 이 모듈을 임포트하면, 해당 블록은 실행되지 않는다

📖 예시: 모듈 내용

import math

# 변수
PI = math.pi

# 함수
def add(*args):
    return f'{args[0]}부터 {args[len(args)-1]}까지 누적합 {sum(args)}'

# 클래스
class MyClass:
    def say(self):
        return '클래스의 메소드 : say'

if __name__ == '__main__':
    print(PI)
    print(add(*list(range(1, 11))))
    myclass = MyClass()
    print(myclass.say())

3. 람다 함수

  • 람다 함수는 간단한 기능을 수행하는 익명 함수로, lambda 키워드를 사용하여 정의
  • 람다 함수는 주로 한 줄로 정의되는 함수

📖 예시: 람다 함수

add = lambda x, y: x + y
subtract = lambda x, y: x - y

if __name__ == '__main__':
    print(add(10, 10))
    print(subtract(10, 10))

4. time 모듈 사용

  • 파이썬의 time 모듈은 시간을 다룰 때 유용한 여러 기능을 제공
  • time() 함수는 1970년 1월 1일부터 현재까지의 시간을 초 단위로 반환
  • localtime()은 지역 시간으로 변환된 struct_time 객체를 반환
  • strftime()을 사용하면 시간을 특정 형식으로 문자열로 변환

📖 예시: time 모듈 사용

import time
from time import localtime

if __name__ == '__main__':
    print(dir(time))
    print(time.time())  # 현재 시간 (초 단위)
    print(time.localtime())  # 지역 시간
    print(time.localtime(), type(time.localtime()), sep=' | ')

    local_time = time.localtime()
    print(local_time, type(local_time), sep=' | ')  # struct_time 객체
    print(f'{local_time.tm_year}.{local_time.tm_mon}.{local_time.tm_mday} {local_time.tm_hour}:{local_time.tm_min}')
    print(time.strftime('%Y.%m.%d %p %X', local_time))  # 포맷된 시간 출력

5. time.sleep() 함수

  • time.sleep() 함수는 프로그램을 일정 시간 동안 멈추게 하는 데 사용
  • 예를 들어, time.sleep(3) 은 3초 동안 프로그램을 일시 중지
import time

if __name__ == '__main__':
    time.sleep(3)
    print('3초 후 출력')

6. 요약

모듈의 name은 파일이 직접 실행될 때는 "main"이고, 다른 파일에서 임포트될 때는 파일 이름을 반환
✅ 모듈 구성
: 변수, 함수, 클래스 등을 정의하고, if name == 'main': 블록 안에서 실행되는 코드를 넣는다
✅ 람다 함수
: 간단한 함수 정의에 유용한 한 줄짜리 익명 함수
✅ time 모듈
: 시간 관련 함수(time(), localtime(), strftime())를 사용하여 시간을 다루고 출력 가능
✅ time.sleep()
: 프로그램을 일정 시간 동안 중지시키는 함수

0개의 댓글