python中变量都被视为对象的引用。python函数调用传递参数的时候,不允许程序员选择传值还是传引用,python参数传递采用的都是“传对象引用”的方式。 
    这种方式相当于传值和传引用的结合,如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值——相当于通过“传引用”来传递对象;如果函数收到的是一个不可变对象(比如数字、字符串或元组)的引用,就不能直接修改原始对象——相当于“传值”来传递对象。

def Func(x):
x = 20 a = 10
Func(a)
print(a)
#输出10, 调用Func(a)时,Func内部的x变量指向整型对象10,
#(即为整型对象10的引用)。在Func内部尝试修改一个不可变对象,
#会使得Func内部的x指向一个新的对象20,而外部的变量a仍然指向不可变对象10. def Func2(x):
x[0] = 20 a = [1,2,3]
Func2[a]
print(a)
#结果为 [20, 2, 3]。

python一般内部赋值变量的话,都是个引用变量,和c语言的传地址概念差不多。可以通过id(x)来查询x的内存地址。 
    如果 a=b的话,a和b的地址相同;如果只是想拷贝,就要用 a = b[:]

最新文章

  1. OpenLayers元素选择工具
  2. Android Studio1.4.x JNI开发基础-基本环境配置
  3. CodeSmith操作Access时字段的排序问题
  4. ural 1155. Troubleduons
  5. COLUMN_VALUE Pseudocolumn
  6. swift:用UITabBarController、UINavigationController、模态窗口简单的搭建一个QQ界面
  7. bzoj1717: [Usaco2006 Dec]Milk Patterns 产奶的模式
  8. Objective-C Runtime 运行时之三:方法与消息
  9. QT程序启动界面的使用
  10. 一起来学jquery!
  11. 《Python学习手册》读书笔记【转载】
  12. 包建强的培训课程(6):Android App瘦身优化
  13. DateTime时间格式转换为Unix时间戳格式
  14. [cf div 2 706E] Working routine
  15. StringRedisTemplate操作redis数据
  16. Linux查看文件命令
  17. 川崎机器人c#通讯(转)
  18. 跟我学算法-图像识别之图像分类(上)(基础神经网络, 卷积神经网络(CNN), AlexNet,NIN, VGG)
  19. div img span 垂直居中问题
  20. [Java][Web]Web 工程中的各类地址的写法

热门文章

  1. U3D UGUI学习5 - Layout和文字适配
  2. UVa 489,紫书P79,刽子手游戏
  3. 数字证书私钥sign及验证
  4. sql 百万级数据库优化方案
  5. CTabCtrl的使用
  6. 解决This function or variable may be unsafe
  7. 记一次MySql入库后,文本出现乱码的问题
  8. gastic 安装
  9. Xcode error: conflicting types for 'XXXX'
  10. Codeforces Round #272 (Div. 2) C. Dreamoon and Sums 数学