python实现在函数中修改变量值的方法


Posted in Python onJuly 16, 2019

和其他语言不一样,传递参数的时候,python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传对象引用”的方式。

实际上,这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,

就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,

就不能直接修改原始对象--相当于通过“传值'来传递对象。

python一般内部赋值变量的话,都是传个引用变量,和C语言的传地址的概念差不多。可以用id()来查询内存地址

下面的str_是可修改的对象,因此在add函数中可以修改:

#!/usr/bin/env python
#coding=utf-8
 
 
 
def add(s):
  s += 'b'
  print "In add function :", s
 
 
if __name__ == "__main__":
  str_ = list("aaa")
  add(str_)
  print "In main function:", str_

输出为:

In add function : ['a', 'a', 'a', 'b']
In main function: ['a', 'a', 'a', 'b']

下面的str_是不可修改的对象,因此在add函数中不能修改:

#!/usr/bin/env python
#coding=utf-8
 
 
 
def add(s):
  s += 'b'
  print "In add function :", s
 
 
if __name__ == "__main__":
  str_ = "aaa"
  add(str_)
  print "In main function:", str_
In add function : aaab 

In main function: aaa

关于python的复制

如果a=b的话, a和b的地址是相同的;如果只是想拷贝,那么就得用 a=b[:]。

!!!注意这一点,这可是可以引起重大错误的。。。

以上这篇python实现在函数中修改变量值的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python发送form-data请求及拼接form-data内容的方法
Mar 05 Python
Python有序字典简单实现方法示例
Sep 28 Python
Python 结巴分词实现关键词抽取分析
Oct 21 Python
Python自定义函数定义,参数,调用代码解析
Dec 27 Python
Python基于dom操作xml数据的方法示例
May 12 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
Jul 11 Python
基于Python和PyYAML读取yaml配置文件数据
Jan 13 Python
解决django接口无法通过ip进行访问的问题
Mar 27 Python
Matplotlib自定义坐标轴刻度的实现示例
Jun 18 Python
python接入支付宝的实例操作
Jul 20 Python
Python制作数据预测集成工具(值得收藏)
Aug 21 Python
Python高阶函数与装饰器函数的深入讲解
Nov 10 Python
python 同时读取多个文件的例子
Jul 16 #Python
Python中一个for循环循环多个变量的示例
Jul 16 #Python
python中多个装饰器的调用顺序详解
Jul 16 #Python
浅谈python多进程共享变量Value的使用tips
Jul 16 #Python
python多线程共享变量的使用和效率方法
Jul 16 #Python
Python 进程之间共享数据(全局变量)的方法
Jul 16 #Python
python实现键盘输入的实操方法
Jul 16 #Python
You might like
真正面向对象编程:PHP5.01发布
2006/10/09 PHP
提升PHP执行速度全攻略(下)
2006/10/09 PHP
php操作excel文件 基于phpexcel
2010/07/02 PHP
如何用PHP做到页面注册审核
2017/03/02 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
2018/12/06 PHP
基于jquery的用鼠标画出可移动的div
2012/09/06 Javascript
jquery购物车实时结算特效实现思路
2013/09/23 Javascript
jQuery实现div拖拽效果实例分析
2016/02/20 Javascript
详解vue-Resource(与后端数据交互)
2017/01/16 Javascript
关于使用axios的一些心得技巧分享
2017/07/02 Javascript
node koa2实现上传图片并且同步上传到七牛云存储
2017/07/31 Javascript
Node.js引入UIBootstrap的方法示例
2018/05/11 Javascript
对angular 监控数据模型变化的事件方法$watch详解
2018/10/09 Javascript
原生JS实现自定义下拉单选选择框功能
2018/10/12 Javascript
Node.js原生api搭建web服务器的方法步骤
2019/02/15 Javascript
如何基于filter实现网站整体变灰功能
2020/04/17 Javascript
vue实现简单学生信息管理
2020/05/30 Javascript
Python3.x中自定义比较函数
2015/04/24 Python
python制作企业邮箱的爆破脚本
2016/10/05 Python
django模板加载静态文件的方法步骤
2019/03/01 Python
python elasticsearch从创建索引到写入数据的全过程
2019/08/04 Python
Python + Flask 实现简单的验证码系统
2019/10/01 Python
Python如何实现FTP功能
2020/05/28 Python
Python局部变量与全局变量区别原理解析
2020/07/14 Python
html5 canvas实现圆形时钟代码分享
2013/12/25 HTML / CSS
HTML5单页面手势滑屏切换原理
2016/03/21 HTML / CSS
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
ETO男装官方网店:ETO Jeans
2019/02/28 全球购物
应聘护士自荐信
2013/10/21 职场文书
2013年军训通讯稿
2014/02/05 职场文书
专家推荐信模板
2014/05/09 职场文书
诚信贷款承诺书
2014/05/30 职场文书
党校学习心得体会范文
2014/09/09 职场文书
运动会广播稿100字
2014/09/14 职场文书
优秀少先队员事迹材料
2014/12/24 职场文书
遗嘱继承权公证书
2015/01/26 职场文书