Python对象的别名引用

  • A+
所属分类:Python


今天安云网来给大家讲一下Python对象别名的概念。

假设有一个变量a,引用了一个对象,我们赋值 b = a,这样两个变量都会引用同一个Python对象:

>>> a = [1, 2, 3,]
>>> b = a
>>> b is a
True

变量和对象之间的这种关联的关系称为引用,在上面例子里面,有2个指向同一个对象的引用。

当一个对象有多个引用的时候,并且引且有不同的名称,我们称这个对象有别名(aliase)。

如果有别名的对象是可变类型的,那么对一个别名的修改就会影响到另一个:

>>> b[0] = 17
>>> print a
[17, 2, 3]

虽然这种行为可能很有用,但它也容易导致错误和异常,通常来说,当处理可变对象时,避免使用别名会更加安全。

对于字符串这样的不可变对象,别名则不会带来这个问题,看下面例子:

>>> a = 'banana'
>>> b = 'banana'

不论变量a和变量b是否引用同一个字符串对象,都不会有什么区别。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: