1. 当变量a是不可变类型数据时,a += a与 a = a + a的输出一致,变量a在函数内部的变化不会影响函数外全局变量a的值。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
a
=
10
def
sum_a(a):
a
+
=
a
print
(a)
sum_a(a)
print
(a)
print
(
'-'
*
20
)
def
sum_b(a):
a
=
a
+
a
print
(a)
sum_b(a)
print
(a)
输出:
20
10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
20
10
|
2. 当变量a是可变类型数据时,在函数中,a+=a不等于a=a+a!
a+=a是在全局变量a的内存地址上进行修改;而a=a+a是定义一个局部变量a,将a+a的值赋予它,全局变量a的值不变
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
a
=
[
11
,
22
]
def
sum_a(a):
a
+
=
a
print
(a)
sum_a(a)
print
(a)
print
(
'-'
*
20
)
a
=
[
11
,
22
]
def
sum_b(a):
a
=
a
+
a
print
(a)
sum_b(a)
print
(a)
输出:
[
11
,
22
,
11
,
22
]
[
11
,
22
,
11
,
22
]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
[
11
,
22
,
11
,
22
]
[
11
,
22
]
|
本文转自戴柏阳的博客博客51CTO博客,原文链接http://blog.51cto.com/daibaiyang119/1928787如需转载请自行联系原作者
daibaiyang119