首页 > 编程语言 > 详细

python中的变量引用问题笔记

时间:2019-11-02 23:26:21      阅读:103      评论:0      收藏:0      [点我收藏+]

python的变量都可以看成是内存中某个对象的引用。(变量指向该内存地址存储的值)

1.python中的可更改对象和不可更改对象

python中的对象可以分为可更改(mutable)对象与不可更改(immutable)对象

  • strings, tuples, 和numbers是不可更改的对象
  • list,dict等则是可以修改的对象。
    如果某个变量指向不可更改的对象,则重新赋值时。原对象被抛弃,变量会指向一个新对象。
    若指向的是可更改的对象,则重新赋值时,会也会重新赋值内存中对象的值。

如图:nfoo是numbers为不可更改对象,lstFoo是list为可更改对象
技术分享图片
注意若lstFoo整个list变量重新赋值,则还是新开辟一个内存对象,lstFoo再指向新的内存对象

当重新赋值时,发生的改变如下图

技术分享图片

2.python的函数是引用调用,还是传值调用?

在函数参数传值时,变量也是内存对象的引用。 当对象为可更改对象时,是引用调用,函数内参数的改变会影响到原始对象。 当对象为不可更改对象时,就只是相当于传值调用。

python中的变量引用问题笔记

原文:https://www.cnblogs.com/laiyaling/p/11784474.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!