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获取远程文件大小的函数代码分享
May 13 Python
Python多线程编程(七):使用Condition实现复杂同步
Apr 05 Python
python optparse模块使用实例
Apr 09 Python
Python使用logging结合decorator模式实现优化日志输出的方法
Apr 16 Python
python list是否包含另一个list所有元素的实例
May 04 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
Dec 18 Python
python并发编程多进程之守护进程原理解析
Aug 20 Python
Python 音频生成器的实现示例
Dec 24 Python
python实现交并比IOU教程
Apr 16 Python
Python日志处理模块logging用法解析
May 19 Python
搭建pypi私有仓库实现过程详解
Nov 25 Python
关于python中readlines函数的参数hint的相关知识总结
Jun 24 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函数
2011/05/31 PHP
PHP pathinfo()获得文件的路径、名称等信息说明
2011/09/13 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
2016/12/07 PHP
PHP常用函数之格式化时间操作示例
2019/10/21 PHP
Yii框架模拟组件调用注入示例
2019/11/11 PHP
PHP实现爬虫爬取图片代码实例
2021/03/03 PHP
js 与或运算符 || && 妙用
2009/12/09 Javascript
js 3秒后跳转页面的实现代码
2014/03/10 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
Web开发必知Javascript技巧大全
2016/02/23 Javascript
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
微信小程序ajax实现请求服务器数据及模版遍历数据功能示例
2017/12/15 Javascript
基于JavaScript实现一个简单的Vue
2018/09/26 Javascript
vue中利用Promise封装jsonp并调取数据
2019/06/18 Javascript
js实现数字滚动特效
2019/12/16 Javascript
JS实现横向轮播图(初级版)
2020/06/24 Javascript
Vuex模块化应用实践示例
2020/02/03 Javascript
jQuery操作选中select下拉框的值代码实例
2020/02/07 jQuery
详解JavaScript 高阶函数
2020/09/14 Javascript
JS实现公告上线滚动效果
2021/01/10 Javascript
[01:00:30]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第二场 10.31
2020/11/02 DOTA
Python3实现腾讯云OCR识别
2018/11/27 Python
对python修改xml文件的节点值方法详解
2018/12/24 Python
python自定义函数实现最大值的输出方法
2019/07/09 Python
详解Python绘图Turtle库
2019/10/12 Python
Selenium启动Chrome时配置选项详解
2020/03/18 Python
CSS3对图片照片进行边缘模糊处理的实现
2018/08/08 HTML / CSS
正宗的澳大利亚Ugg靴子零售商:UGG Express
2020/04/19 全球购物
KEEN美国官网:美国人气户外休闲鞋品牌
2021/03/09 全球购物
深圳茁壮笔试题
2015/05/28 面试题
会计专业自我鉴定范文
2013/10/06 职场文书
美术第二课堂活动总结
2014/07/08 职场文书
小学教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
幼儿园大班教育随笔
2015/08/14 职场文书
Python借助with语句实现代码段只执行有限次
2022/03/23 Python
CentOS 7安装mysql5.7使用XtraBackUp备份工具命令详解
2022/04/12 MySQL