【python】可变变量与不可变变量
2023-12-30 05:04:54
不可变类型(如整数和字符串)
当您创建一个不可变对象(如整数、字符串)时,Python实际上是将这个值存储在内存中的某个位置,并将变量名指向这个值。例如:
lens = 10
count = lens
在这种情况下,lens 和 count 都指向内存中的同一个值 10。但是,不可变类型的关键特点是它们的值不能被改变。当您执行 count += 1 时,Python会创建一个新的整数对象 11 并更新 count 指向这个新对象。lens 仍然指向原来的整数对象 10。这就是为什么更改 count 的值不会影响 lens。
常见的不可变类型包括:
- 整数(Integers)
- 浮点数(Floats)
- 字符串(Strings)
- 元组(Tuples)
- 布尔值(Booleans)
- 冻结集合(Frozen sets)
例如,当你修改一个字符串或元组时,Python实际上会创建一个新的字符串或元组对象。
可变类型(如列表)
对于可变类型(如列表),情况有所不同。当您创建一个列表并将其赋值给另一个变量时,两个变量实际上指向的是同一个列表对象。例如:
python
Copy code
lens = counts = [1, 2]
在这个例子中,lens 和 counts 实际上是指向同一个列表对象 [1, 2] 的引用。当您修改这个列表(例如 lens[0] = 0),更改会反映在这个列表对象上,因此 counts 也会看到这个更改,因为它们指向的是同一个对象。
常见的可变类型包括:
- 列表(Lists)
- 字典(Dictionaries)
- 集合(Sets)
结论
不可变对象(如整数、字符串)的变量名可以被认为是指向其值的引用。赋值操作创建了新的引用,但不可变对象本身不会被改变。
可变对象(如列表)的变量名是指向对象的引用。多个变量可以指向同一个可变对象,因此一个变量对对象的修改可以通过其他指向同一对象的变量看到
文章来源:https://blog.csdn.net/zaza0_0/article/details/135301267
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!