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__())