Python中的实例方法类方法静态方法和普通方法
Posted 心有事焉 勿忘勿助
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中的实例方法类方法静态方法和普通方法相关的知识,希望对你有一定的参考价值。
为了辨析它们的差别,写了如下代码:
1 class C:
2
3 def self_method(self, a):
4 return a
5
6 @classmethod
7 def class_method(cls, a):
8 return a
9
10 @staticmethod
11 def static_method(a):
12 return a
13
14 def method(a):
15 return a
16
17 if __name__ == ‘__main__‘:
18 c = C()
19 print(c.self_method(‘self method‘))
20 print(c.class_method(‘class method‘))
21 print(c.static_method(‘static method‘))
22 # print(c.method(‘method‘)) 运行出错
23 # print(C.self_method(‘self method‘)) 运行出错
24 print(C.class_method(‘class method‘))
25 print(C.static_method(‘static method‘))
26 print(C.method(‘method‘))
因此:
- 实例方法定义时第一个参数为类的一个实例(self),调用时必须通过实例调用。可以访问实例属性和方法。
- 类方法使用@classmethod装饰,第一个参数为类(cls),调用时可以通过类的实例或者类本身来调用。可以访问类属性和方法。
- 静态方法使用@staticmethod装饰,调用时可以使用类的实例或者类本身来调用。
- 普通方法其实是在类中定义了一个普通函数,调用时必须通过类本身来调用。
以上是关于Python中的实例方法类方法静态方法和普通方法的主要内容,如果未能解决你的问题,请参考以下文章
Python:类属性,实例属性,私有属性与静态方法,类方法,实例方法
python的静态成员变量实例成员变量静态方法类方法实例方法