不可变的是什么?

1.简单地说...

其值可以更改的对象称为可变对象。
价值可以改变的对象被认为是可变的。

无法更改其值的对象称为不可变的。
其值不可更改的对象称为不可变的。

3.1。
对象,值和类型-Python语言参考

 

不可变
的具有固定值的对象。不可变的对象包括数字,字符串和元组。这些对象不能更改值。 如果要记住另一个值,则必须创建一个新对象。在需要固定哈希值的情况下,不可变对象起着重要作用。字典键就是一个例子。

2、可变对象

例如,可变是由列表类型,字典类型和类定义语句定义的类。

lass Person:
    def __init__(self, name):
        self.name = name

person = Person('yaruo')
person.name

# 已修改 -> mutable
person.name = 'yarumi' 
person.name  # 'yarumi'

>>> # 已修改 -> mutable
... person.name = 'yarumi' 
>>> person.name  # 'yarumi'
'yarumi'
>>> 
 

清单类型

lst = [1, 2, 3]

# 已修改 -> mutable
lst[2] = 4
lst  # [1, 2, 4]

>>> # 已修改 -> mutable
... lst[2] = 4
>>> lst  # [1, 2, 4]
[1, 2, 4]
>>> 

不变的对象

例如,int,str,bool和tuple实例是不可变的。a = 1

# 1 真
a.real  # 1

# 1 假
a.imag  # 0

# 不能变更 -> immutable
i.imag = 100  # AttributeError

>>> #不能变更 -> immutable
... i.imag = 100  # AttributeError
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
NameError: name 'i' is not defined
>>>


AttributeError如果

属性引用或属性分配失败,则调度 (如果对象根本不支持属性引用或属性分配,则引发TypeError)。

 

posted @ 2020-05-02 20:30  Xingtxx  阅读(238)  评论(0编辑  收藏  举报