Python @classmethod、@staticmethod修饰器

class Date(object):  
  
    day = 0  
    month = 0  
    year = 0  
  
    def __init__(self, day=0, month=0, year=0):  
        self.day = day  
        self.month = month  
        self.year = year  
          
    def tellDate(self):  
        print 'Today is %s-%s-%s'%(self.day,self.month,self.year)  
    @classmethod  
    def from_string(cls, date_as_string):  
        day, month, year = map(int, date_as_string.split('-'))  
        date = cls(day, month, year)  
        return date  
 
    @staticmethod  
    def is_date_valid(date_as_string):  
        day, month, year = map(int, date_as_string.split('-'))  
        return day <= 31 and month <= 12 and year <= 3999  
  
if __name__ == '__main__':  
    date1 = Date()  
    date1.tellDate()  
    date2 = Date.from_string("14-04-2016")  
    date2.tellDate()  
    print Date.is_date_valid("14-04-2016")  

  

猜你喜欢

转载自www.cnblogs.com/liangzp/p/8926440.html