美文网首页程序员
python的“不可变性”代表了什么?

python的“不可变性”代表了什么?

作者: 唐大方 | 来源:发表于2017-04-04 02:18 被阅读0次

在python中,每一个对象都可以分为不可变性或者可变性。

不可变性可以用来保证在程序中保持一个对象的固定不变。

一个具有“不可变性”的对象,是一个在其创建以后不能够被改变的对象。例如,不能通过对字符串的某一位置进行赋值而改变字符串。

Python中的数字、字符串、元组是不可变的;列表和字典可以完全自由地改变。

尽管无法就地改变一个不可变的对象,但是可以通过运行一个表达式创建一个新的对象。例如,可以通过创建一个新的字符串,并以相同的变量名进行赋值:

str = 'bukebian'

str[0:2] = ''

Traceback (most recent call last):

 File "file.py", line 3, in

str[0:2] = ''

TypeError: 'str' object does not support item assignment

str = 'ok'

print(str)

ok

此时,变量str指向了新的对象'ok',曾指过的对象'bukebian'没有发生任何变化,仍旧在其原来的内存空间。只有一种情况会出现,那就是被python清理掉,条件是其他变量都没有引用(指向)它。

相关文章

  • python的“不可变性”代表了什么?

    在python中,每一个对象都可以分为不可变性或者可变性。 不可变性可以用来保证在程序中保持一个对象的固定不变。 ...

  • Python进阶6

    对象引用、垃圾回收、可变性 Python中的变量是什么 引言 Python和java中的变量本质不一样,java的...

  • python 元组、列表、字符串

    一、python------元组: 元组和列表格式差不多,但是元组具有不可变性,对于列表的增、删、改、查四种功能 ...

  • python字符串的不可变性

    python的字符串是不可变对象。所谓不可变对象是指一旦生成后不能被改变的对象。 不可变对象有什么优点 : 可以提...

  • String,StringBuffer 和 StringBuil

    主要从三个方面谈这三个类的区别: 可变性 线程安全性 性能 可变性 String为什么是不可变的?String内部...

  • 360-037.以官杀当财

    只要官变性了,就代表财,得到方式:化官生印,制官。如果没有这两样,只代表机会来了。 官在什么情况下当财? 1、官过...

  • 什么是 String 的不可变性?

    String 被声明为 final,是不可变的,它也不可被继承。 通过源码了解 String 的不可变性 在 Ja...

  • 不可变性

    可以通过创建一个不可变的共享对象来保证对象被多个线程共享时不会被修改(通俗点讲就是,不提供修改方法) 注意不可变性...

  • 不可变性

    不可变性 一般来说,有两种改变数据的方式。第一种方式是直接修改变量的值,第二种方式是使用新的一份数据替换旧数据。 ...

  • 2018-10-11

    C基础入门Python(二) 2、字符串 字符串是单个单词的序列 1)创建字符串 字符串具有不可变性。但支持索引和...

网友评论

    本文标题:python的“不可变性”代表了什么?

    本文链接:https://www.haomeiwen.com/subject/wykaottx.html