Python类与类之间的关系(3)

#####类方法静态方法区别

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

class Num:
#普通方法:能用Num调用而不能用实例化对象调用
def one():
print ('1')

#实例方法:能用实例化对象调用而不能用Num调用
def two(self):
print ('2')

#静态方法:能用Num和实例化对象调用
@staticmethod
def three():
print ('3')

#类方法:第一个参数cls长什么样不重要,都是指Num类本身,调用时将Num类作为对象隐式地传入方法
@classmethod
def go(cls):
cls.three()

Num.one() #1
#Num.two() #TypeError: two() missing 1 required positional argument: 'self'
Num.three() #3
Num.go() #3

i=Num()
#i.one() #TypeError: one() takes 0 positional arguments but 1 was given
i.two() #2
i.three() #3
i.go() #3

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!