这段代码我觉得很好的说明了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'
|