Python/Basics

[파이썬 기초 문법] - 내용 정리 2(모듈, 클래스)

ro-jun 2024. 10. 19. 02:15
728x90
반응형

모듈

  • datetime 모듈듈

datetime 모듈

import datetime

# 현재날짜와 현재시간 출력하기
now = datetime.datetime.now()
print(now)

# n일 전 날짜 출력하기
n = 3
delta = datetime.timedelta(n)
date = now - delta
print(date)
    
# 현재 시간만 포맷하기
print(now.strftime("%H:%M:%S"))
2024-10-18 13:47:24.277632
2024-10-15 13:47:24.277632
13:47:24
  • time 모듈 - sleep 함수
import time
import datetime

while True:
    now = datetime.datetime.now()
    print(now)
    time.sleep(1)
2024-10-18 13:48:46.968221
2024-10-18 13:48:47.971065
2024-10-18 13:48:48.972330
2024-10-18 13:48:49.973354
2024-10-18 13:48:50.974627
# 강제 종료시
--------------------------------------------------------------------------- KeyboardInterrupt Traceback (most recent call last) <ipython-input-18-ff6a7c17cf1d> in <cell line: 4>() 5 now = datetime.datetime.now() 6 print(now) ----> 7 time.sleep(1) KeyboardInterrupt:
  • os - getcwd함수, rename함수
import os
ret = os.getcwd()
print(ret, type(ret))
os.rename("/content/title.txt", "/content/untitle.txt")
# 현재 경로 출력하기(당시 colab 사용)
/content <class 'str'>

# 파일 이름 변경하기
os.rename("/content/title.txt", "/content/untitle.txt")

 


클래스

  • 클래스 생성, 인스턴스 생성
# 클래스 생성
class Human:
	pass
    
# 인스턴스 생성
hojun = Human()
  • 메소드 추가, 인스턴스 속성 접근, 인스턴스 삭제
# Human 클래스 생성
class Human:
  def __init__(self):
    print("사람입니다.")

# 변수를 전달받는 생성자 추가하여 클래스 생성
class Human_plus:
  # 생성자 메소드
  def __init__(self, name, age, sex):
    print("클래스 인스턴팅 완료")
    self.name = name
    self.age = age
    self.sex = sex

  # who 메소드
  def who(self):
    return f"이름: {self.name}, 나이: {self.age}, 성별: {self.sex}"

  # 소멸자 메소드
  def __del__(self):
    print("인스턴스가 삭제되었습니다")

# 인스턴스 생성
hojun = Human()
hojun = Human_plus("호준", 25, "남자")

# 인스턴스 속성 접근하기
print(hojun.name)
print(hojun.age)
print(hojun.sex)

# 인스턴스 메소드 호출
print(hojun.who())

# 인스턴스 삭제
del(hojun)
print(hojun)

 

사람입니다.
클래스 인스턴팅 완료
호준
25
남자
이름: 호준, 나이: 25, 성별: 남자
인스턴스가 삭제되었습니다
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-78-3671d81cc77f> in <cell line: 37>() 35 # 인스턴스 삭제 36 del(hojun) ---> 37 print(hojun)
NameError: name 'hojun' is not defined
  • 인스턴스 속성 수정
class Stock:
    def __init__(self, name, code, per, pbr, dividend):
        self.name = name
        self.code = code
        self.per = per
        self.pbr = pbr
        self.dividend = dividend

    # 속성 값 수정
    def set_name(self, name):
        self.name = name

    def set_code(self, code):
        self.code = code

    def set_per(self, per):
        self.per = per

    def set_pbr(self, pbr):
        self.pbr = pbr

    def set_dividend(self, dividend):
        self.dividend = dividend
    
    # 속성 값 호출
    def get_name(self):
        return self.name

    def get_code(self):
        return self.code
  
    def get_per(self):
        return self.per

    def get_pbr(self):
        return self.pbr

    def get_dividend(self):
        return self.dividend

# 인스턴스 생성
kakao = Stock("카카오", "035720", 170.0, 1.33, 2.83)
samsung = Stock("삼성전자", "005930", 15.79, 1.33, 2.83)
hyundai = Stock("현대차", "005380", 8.70, 0.35, 4.27)
lg = Stock("LG전자", "066570", 317.34, 0.69, 1.37)

# 인스턴스 속성값(name) 확인, 변경
print(kakao.get_name())
kakao.set_name("카카오 모빌리티")
print(kakao.get_name())
카카오
카카오 모빌리티
  • 부모 - 자식 클래스(클래스 상속, 메서드 호출, 오버라이딩)
class 차:
    # 생성자 생성
    def __init__(self, 바퀴, 가격):
        self.바퀴 = 바퀴
        self.가격 = 가격
        print("부모 클래스 차 생성")
    def 정보(self):
        print("바퀴수 ", self.바퀴)
        print("가격 ", self.가격)

# 자식 자동차 클래스가 부모 차 클래스 상속 받기.
class 자동차(차):
    def __init__(self, 바퀴, 가격):
        # 부모 클래스 생성자 호출
        super().__init__(바퀴, 가격)
        print("자식 클래스 자동차 생성")
# 자식 자전차 클래스가 부모 차 클래스 상속 받기.
class 자전차(차):
    def __init__(self, 바퀴, 가격, 구동계):
        # 부모 클래스 생성자 호출
        super().__init__(바퀴, 가격)
        self.구동계 = 구동계
        print("자식 클래스 자전차 생성")

    def 정보(self):
        # 부모 클래스 메서드 호출
        super().정보()
        print("구동계 ", self.구동계)

print("-"*100)
bicycle = 자전차(2, 100, "시마노")
print("-"*100)
bicycle.정보()
print("-"*100)
bicycle2 = 차(5, 110)
print("-"*100)
bicycle2.정보()
print("-"*100)

 

----------------------------------------------------------------------------------------------------
부모 클래스 차 생성
자식 클래스 자전차 생성
----------------------------------------------------------------------------------------------------
바퀴수 2
가격 100
구동계 시마노
----------------------------------------------------------------------------------------------------
부모 클래스 차 생성
----------------------------------------------------------------------------------------------------
바퀴수 5
가격 110
----------------------------------------------------------------------------------------------------

https://wikidocs.net/book/922

728x90
반응형