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中静态方法和类方法的区别

Python 实例方法类方法静态方法的区别与作用

面试必问python实例方法类方法@classmethod静态方法@staticmethod和属性方法@property区别

python的实例方法,类方法和静态方法区别

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

python 类方法和静态方法的区别