ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 220718_부트캠프시작_python_3주_1일차 (복기)
    bigdata_bootcamp_12th/daily review 2022. 7. 18. 22:29

    1. 네비게이션 업데이트 서비스 만들기

     

    print('안녕하세요 MS내비 업데이트 서비스 알림입니다.')
    
    def navigation() :
    
        try :
            import datetime
            today = datetime.datetime.now()
    
            li_y = int(input('내비 구매 연도를 입력해주세요 ex) 2022 (yyyy) '))
            li_m = int(input('내비 구매 월을 입력해주세요 ex) 07 (mm) '))
            li_d = int(input('내비 구매 일자를 입력해주세요 ex) 18 (dd) '))
            if today.year - li_y > 1 :
                print("무료 업데이트 대상자입니다. 무료 업데이트를 진행합니다. ")
            elif today.year - li_y == 1:
                if today.month - li_m > 0 :
                    print("무료 업데이트 대상자입니다. 무료 업데이트를 진행합니다. ")
                elif today.month - li_m == 0 :
                    if today.day - li_d > 0 :
                        print("무료 업데이트 대상자입니다. 무료 업데이트를 진행합니다. ")
            else :
                print("무료 업데이트 대상자가 아닙니다. 유료 업데이트를 원하시는 경우 010-3021-7819 김민식 과장에게 연락부탁드립니다. ")
    
    
        except Exception as error_all :
            print('올바른 형식이 아닙니다. 다시 시작해주세요. ', error_all)
    
    navigation()

     

    try와 except 를 이용해 형식 오류가 나면 에러메세지를 출력 

    if와 elif 그리고 datetime 을 이용한 년 -> 월 -> 일 순으로 4년이 지났으면 무료 업데이트 대상자 출력 아니면 무료업데이트 일자 출력으로 간단한 구성을 통해 복습 완료 

     

     

     

    2. class(self 사용), method(static, classmethod), @property @함수이름.setter 

     

    1) class 지정 후 self.인스턴스 = '기본값'

    - self.인스턴스 를 통해 클래스변수가 아닌 객체변수 (인스턴스변수) 를 활용하여 추후 지정한 인스턴스마다

    각각 객체를 부여하여 사용 가능. (쉘로우 카피방식으로 같은 변수에 데이터가 들어가도 주소값이 변하여 다름)

    - ex

    class Person:
        성별 = '남자'     # 클래스 변수
    
        def __init__(self, 이름, 나이):   # __inti__ 을 통해 self  지정 (인스턴스 변수 지정)
            self.__이름 = 이름            # __는 고정 값을 뜻함
            self.__나이 = 나이

    2) method(static, classmethod)

        @staticmethod            # 고정된, 한번 만들어놓으면 자식 클래스에서도 같은 방식으로 동작
        def method1():
            return Person.nation
    
        @classmethod             # 해당 클래스에 맞게 메서드가 다른 지점을 참조하여 동작
        def method2(aa):
            print('aa', aa)
            return aa.성별

     

     

    3) @property @함수이름.setter

        @property
        def outer_age(self):               # getter - 값을 받아오는 함수
            print('나이 출력 합니다.')
            return self.__나이              # 함수를 통하여 리턴 값을 받아 직접적인 변경 제한 (은닉)
    
        @outer_age.setter # 함수명.setter
        def outer_age(self, 나이):          # setter - 값을 변경하는 함수 사용하여 제작자만 변경가능하게
            print('나이 변경 합니다.')
            if isinstance(나이, int):       # isinstance(age, int)  int 클래스 출신인지 확인하는 명령어
                self.__나이  = 나이
            else:
                print('숫자 아님 저리가세요!')

     

Designed by Tistory.