1 #-*- encoding:utf-8 -*- 2 3 class Date(object): 4 def __init__(self, year, month, day): 5 self.year = year 6 self.month = month 7 self.day = day 8 9 #实例方法 10 def tomorrow(self): 11 self.day +=1 12 13 #静态方法(缺点:需要写入固定的类方法名Date) 14 @staticmethod 15 def parse_from_string(data_str): 16 year, month, day = tuple(data_str.split("-")) 17 return Date(int(year), int(month), int(day)) 18 19 #类方法(传入cls类本身,无需固定类方法名Date) 20 @classmethod 21 def parse_string(cls, data_str): 22 year, month, day = tuple(data_str.split("-")) 23 return cls(int(year), int(month), int(day)) 24 25 def __str__(self): 26 return "{year}/{month}/{day}".format(year=self.year, month=self.month, day=self.day) 27 28 if __name__ == "__main__": 29 data_str = "2018-6-29" 30 #调用实例方法 31 data = Date(2018,6,29) 32 data.tomorrow() 33 print(data) 34 #调用静态方法 35 print(Date.parse_from_string(data_str)) 36 #调用类方法 37 print(Date.parse_string(data_str))
原文:https://www.cnblogs.com/Phantom3389/p/9240860.html