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文件操作整理汇总
Oct 21 Python
Python的Django框架中消息通知的计数器实现教程
Jun 13 Python
Python实现两个list对应元素相减操作示例
Jun 09 Python
解决Python网页爬虫之中文乱码问题
May 11 Python
Python smtplib实现发送邮件功能
May 22 Python
python中单例常用的几种实现方法总结
Oct 13 Python
python 对多个csv文件分别进行处理的方法
Jan 07 Python
pycharm不能运行.py文件的解决方法
Feb 12 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
Apr 30 Python
python opencv 实现读取、显示、写入图像的方法
Jun 08 Python
在python中对于bool布尔值的取反操作
Dec 11 Python
Python 语言实现六大查找算法
Jun 30 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
php修改NetBeans默认字体的大小
2013/07/02 PHP
浅析PHP中的i++与++i的区别及效率
2016/06/15 PHP
PHP crc32()函数讲解
2019/02/14 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
为jQuery.Treeview添加右键菜单的实现代码
2010/10/22 Javascript
用javascript添加控件自定义属性解析
2013/11/25 Javascript
按Enter键触发事件的jquery方法实现代码
2014/02/17 Javascript
jquery制作居中遮罩层效果分享
2014/02/21 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
js实现类似MSN提示的页面效果代码分享
2015/08/24 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
2016/06/21 Javascript
jQuery中slidedown与slideup方法用法示例
2016/09/16 Javascript
EasyUI Combobox设置默认值 获取text的方法
2016/11/28 Javascript
根据Bootstrap Paginator改写的js分页插件
2016/12/25 Javascript
JavaScript使用面向对象实现的拖拽功能详解
2019/06/12 Javascript
jQuery AJAX应用实例总结
2020/05/19 jQuery
Python网络爬虫中的同步与异步示例详解
2018/02/03 Python
django 发送手机验证码的示例代码
2018/04/25 Python
Python中pip更新和三方插件安装说明
2018/07/08 Python
利用Python将数值型特征进行离散化操作的方法
2018/11/06 Python
从numpy数组中取出满足条件的元素示例
2019/11/26 Python
从pandas一个单元格的字符串中提取字符串方式
2019/12/17 Python
python 制作python包,封装成可用模块教程
2020/07/13 Python
Daniel Wellington官方海外旗舰店:丹尼尔惠灵顿DW手表
2018/02/22 全球购物
Weblogc domain问题
2014/01/27 面试题
雅虎笔试题(字符串操作)
2015/03/24 面试题
.NET面试10题
2014/02/24 面试题
空气的环保标语
2014/06/12 职场文书
中国梦演讲稿开场白
2014/08/28 职场文书
运动会广播稿200字(10篇)
2014/10/12 职场文书
2015年试用期自我评价范文
2015/03/10 职场文书
离婚起诉书范文2015
2015/05/19 职场文书
2019各种保证书范文
2019/06/24 职场文书
golang通过递归遍历生成树状结构的操作
2021/04/28 Golang
Navicat for MySQL的使用教程详解
2021/05/27 MySQL