这段代码我觉得很好的说明了python中类的方法在加self和不加self的区别。
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
>>> class AAA( object ): ... def go( self ): ... self .one = 'hello' ... >>> class BBB( object ): ... def go( self ): ...
one = 'hello' ... >>>
a1 = AAA() >>>
a1.go() >>>
a1.one 'hello' >>>
a2 = AAA() >>>
a2.one Traceback
(most recent call last): File "<stdin>" ,
line 1 , in <module> AttributeError: 'AAA' object has
no attribute 'one' >>>
a2.go() >>>
a2.one 'hello' >>>
b1 = BBB() >>>
b1.go() >>>
b1.one Traceback
(most recent call last): File "<stdin>" ,
line 1 , in <module> AttributeError: 'BBB' object has
no attribute 'one' >>>
BBB.one Traceback
(most recent call last): File "<stdin>" ,
line 1 , in <module> AttributeError: type object 'BBB' has
no attribute 'one' >>> class BBB( object ): ... def go( self ): ...
one = 'hello' ... print one ... self .another = one ... >>>
b2 = BBB() >>>
b2.go() hello >>>
b2.another 'hello' >>>
b2.one Traceback
(most recent call last): File "<stdin>" ,
line 1 , in <module> AttributeError: 'BBB' object has
no attribute 'one' |