Python可变类型和不可变类型a+=a与a=a+a的异同

简介:

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
=  10
def  sum_a(a):
     + =  a
     print (a)
sum_a(a)
print (a)
print ( '-' * 20 )
def  sum_b(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
=  [ 11 22 ]
def  sum_a(a):
     + =  a
     print (a)
sum_a(a)
print (a)
print ( '-' * 20 )
=  [ 11 22 ]
def  sum_b(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

相关文章
|
4天前
|
Python IDE 开发工具
Python类型注解(十)
Python类型注解(十)
36 0
Python类型注解(十)
|
4天前
|
存储 程序员 Python
Python变量类型
Python变量类型
19 0
|
4天前
|
Python
在Python中,全局变量和局部变量是两种不同类型的变量
【5月更文挑战第10天】Python中的全局变量在函数外部定义,作用域覆盖整个程序,生命周期从开始到结束。局部变量仅限于函数内部,生命周期从调用到返回。在函数内修改全局变量需用`global`关键字声明,否则会创建局部变量。
21 3
|
4天前
|
Python
【python】—— 内置类型、运算符、表达式、关键字
【python】—— 内置类型、运算符、表达式、关键字
135 1
|
4天前
|
IDE 开发工具 Python
Python类型检查
【5月更文挑战第9天】Python类型检查
10 1
|
4天前
|
Python
Python使用类型注解
【5月更文挑战第7天】
8 2
|
4天前
|
JSON 数据格式 Python
Python 的 requests 库是一个强大的 HTTP 客户端库,用于发送各种类型的 HTTP 请求
【5月更文挑战第9天】`requests` 库是 Python 中用于HTTP请求的强大工具。要开始使用,需通过 `pip install requests` 进行安装。发送GET请求可使用 `requests.get(url)`,而POST请求则需结合 `json.dumps(data)` 以JSON格式发送数据。PUT和DELETE请求类似,分别调用 `requests.put()` 和 `requests.delete()`。
30 2
|
4天前
|
Java C# 开发者
Python 中的类型注解是一种用于描述变量、函数参数和返回值预期类型的机制
【5月更文挑战第8天】Python的类型注解提升代码可读性和可维护性,虽非强制,但利于静态类型检查(如Mypy)。包括:变量注解、函数参数和返回值注解,使用内置或`typing`模块的复杂类型,自定义类型注解,以及泛型模拟。类型注解可在变量声明、函数定义和注释中使用,帮助避免类型错误,提高开发效率。
23 6
|
4天前
|
数据处理 Python
Python中的数字类型
【5月更文挑战第6天】Python数字类型:无限制大小的整型(int,包括二、八、十、十六进制),浮点型(float,支持科学记数法),布尔型(bool,True/False),和复数型(complex,如a+bi)。用于数值计算和数据处理。
18 0
|
4天前
|
索引 Python
python类型错误(TypeError)
【5月更文挑战第1天】
63 2