Python类方法、静态方法和实例方法的区别

匿名 (未验证) 提交于 2019-12-02 22:54:36
 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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!