[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] 디폴트 매개변수
kwh_coding
kwh_coding
성장하는 괴물 성괴 김우형
  • kwh_coding
    코딩 일기
    kwh_coding
  • 전체
    오늘
    어제
    • 분류 전체보기
      • JAVA
      • JavaScript
        • Node
        • React
      • PYTHON
      • GitHub
      • DJANGO
      • ERP Project
      • NAVER CLOUD Web DevOps
      • 자격증
        • SQLD
        • 정보처리기사
        • ADsP
      • 코딩테스트
        • 프로그래머스 Lv0
        • 프로그래머스 Lv1
      • Spring
      • Tools
        • Postman
        • eGov
      • WEB
      • CS
  • 블로그 메뉴

    • 홈
    • GitHub
    • Notion
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바