[PYTHON] 클래스(소멸자)

2023. 7. 4. 09:27·PYTHON
class Info:

    count = 0

    def __init__(self,name = None,age = 0) -> None:
        print("생성자 호출")
        Info.count+=1
        self.__name = name 
        self.set_age(age)
        #self.__age = age

    #setter
    def set_age(self,age):
        if age < 1:
            print("나이를 잘못입력하셨습니다.")
            self.__age = 1
            return
        self.__age = age
 
    #getter
    def get_age(self):
        return self.__age

    @property
    def name(self):
        return self.__name

    @name.setter
    def name(self,name:str):
        if name.__len__() < 2:
            print("이름은 두글자 이상입니다.")
            return
        self.__name = name

    def setData(self,name,age):
        self.__name = name
        self.set_age(age)

    def disp(self) -> None:
        print(Info.count)
        print("이름 : {}".format(self.__name))
        print("나이 : {}".format(self.__age))
    
    @classmethod
    def create(cls):
        return Info()

    # 객체의 정보를 출력해주는 메소드
    # 기본적으로 객체를 출력할때 print함수 내부에서는 __str__ 호출하고 있다
    def __str__(self) -> str:
        return "이름 : {}".format(self.__name) + "\n나이 : {}".format(self.__age)

    # 소멸자 - __del__
    # - 객체 소멸시 자동으로 호출되는 메소드
    # - 객체 정리

    def __del__(self):
        print("소멸자 호출")
        Info.count-=1


i = Info.create()

print(i)

a = Info("김코딩",-20)


a.disp()

a = Info("김코딩",-20)

a.disp()

print([a])

# ls = [1,2,3,4,5]

# print(ls)
# print(ls.__str__())
저작자표시 (새창열림)

'PYTHON' 카테고리의 다른 글

[PYTHON] 바인딩과 다형성  (0) 2023.07.05
[PYTHON] 상속  (0) 2023.07.05
[PYTHON] 클래스(Class)  (0) 2023.07.03
[PYTHON] 디폴트 매개변수  (0) 2023.07.03
[PYTHON] dictionary  (0) 2023.06.30
'PYTHON' 카테고리의 다른 글
  • [PYTHON] 바인딩과 다형성
  • [PYTHON] 상속
  • [PYTHON] 클래스(Class)
  • [PYTHON] 디폴트 매개변수
whkim98
whkim98
꾸준히 내 것으로 만드는 게시글을 작성하자
  • whkim98
    내 일기장
    whkim98
  • 전체
    오늘
    어제
    • 분류 전체보기
      • JAVA
      • JavaScript
        • Node
        • React
      • PYTHON
      • GitHub
      • DJANGO
      • Project
        • Insty
        • ERP
      • Cloud
        • NAVER CLOUD Web DevOps
        • Public
      • 자격증
        • SQLD
        • 정보처리기사
        • ADsP
        • 리눅스마스터
        • AWS
      • 코딩테스트
        • 프로그래머스 Lv0
        • 프로그래머스 Lv1
      • Spring
      • Tools
        • Postman
        • eGov
      • WEB
      • CS
      • DevOps
  • 블로그 메뉴

    • 홈
    • GitHub
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    html
    annotation
    코딩
    javascript
    gitbash
    Postman
    node
    django
    React
    프로그래머스
    git
    Cloud
    eGov
    Java
    Python
    AWS
    AdSP
    해시 암호화
    정보처리기사
    github
    js
    RDBMS
    SQLD
    CORS
    Tomcat
    코테
    코딩테스트
    jsp
    spring
    web
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
whkim98
[PYTHON] 클래스(소멸자)
상단으로

티스토리툴바