# 파이썬 장고 실무 심화 5주차 12강. staticMethod에 대한 코드.
# 작성일/인 : 2023년 8월 21일 (월). 김성우
from datetime import date
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
# a class method to create a Person object by birth year.
@classmethod
def fromBirthYear(cls, name, year):
return cls(name, date.today().year - year )
# a static method to check if a Person is adult or not.
@staticmethod
def isAdult(age): # self 가 들어가지 않는 것이 특이점.
return age > 18
def display(self):
print(self.name + "의 나이 : " + str(self.age) + "입니다")
person1 = Person('사람1', 21) # 인스턴스 생성 후
person1.display()
person2 = Person.fromBirthYear('사람2', 1992) # 인스턴스 생성하지 않고, 클래스메서드로
person2.display()
print(person1.isAdult(22))
print(person1.isAdult(15))
print(person1.isAdult(32))
static method 를 Person 클래스 안에 메서드로 넣은 이유
Person 클래스의 종류에 해당되기 때문에.
일반 함수
def isAdult(age): # self 가 들어가지 않는 것이 특이점. return age > 18
로 만들어도 되지만, 일부러 Person 안에 넣어서 코드의 간결함을 위함
유틸리티(기능성)를 위해서. 클래스 안에 있는 기능성 메서드로 정의.