from datetime import date
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
# 类本身的方法,和类的实例无关,可以理解绑定了类。
# 重构类的时候不必要修改构造函数,只需要额外添加你要处理的函数。
@classmethod
def date_of_birth(cls, name, year):
"""
根据出生年份计算出年龄
"""
return cls(name, date.today().year - year)
# 静态方法无绑定, 没有默认输入参数,类和类实例也可以直接调用,相当于一个普通的函数。
@staticmethod
def isAdult(age):
"""
判断是否成年
"""
if age > 18:
return 'Adult'
else:
return 'Minor'
if __name__ == '__main__':
man1 = Person.date_of_birth('Tony', 2000)
man2 = Person('Alex', 19)
print(man1.age) #19
print(man2.age) #19
print(Person.isAdult(10)) #'Minor'
print(man1.isAdult(21)) #'Adult'
网友评论