Python类方法静态方法和实例方法的区别
Posted 网络迷途者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python类方法静态方法和实例方法的区别相关的知识,希望对你有一定的参考价值。
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))
以上是关于Python类方法静态方法和实例方法的区别的主要内容,如果未能解决你的问题,请参考以下文章
面试必问python实例方法类方法@classmethod静态方法@staticmethod和属性方法@property区别