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 2.6.6升级到python 2.7.x版本的方法
Oct 09 Python
Python 转义字符详细介绍
Mar 21 Python
Python正则抓取网易新闻的方法示例
Apr 21 Python
python 调用c语言函数的方法
Sep 29 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
Dec 28 Python
python批量爬取下载抖音视频
Jun 17 Python
python绘制评估优化算法性能的测试函数
Jun 25 Python
django多个APP的urls设置方法(views重复问题解决)
Jul 19 Python
python函数enumerate,operator和Counter使用技巧实例小结
Feb 22 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
Apr 22 Python
python:HDF和CSV存储优劣对比分析
Jun 08 Python
Java爬虫技术框架之Heritrix框架详解
Jul 22 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在线打包程序源码
2008/07/27 PHP
PHP删除数组中特定元素的两种方法
2013/07/02 PHP
Yii 框架入口脚本示例分析
2020/05/19 PHP
JQuery 插件制作实践 xMarquee插件V1.0
2010/04/02 Javascript
基于jQuery实现点击同时更改两个iframe的网址
2010/07/01 Javascript
JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
2012/10/11 Javascript
关于JavaScript中的关联数组分析
2013/04/09 Javascript
js整数字符串转换为金额类型数据(示例代码)
2013/12/26 Javascript
js自定义select下拉框美化特效
2016/05/12 Javascript
AngularJS内建服务$location及其功能详解
2016/07/01 Javascript
bootstrap多种样式进度条展示
2016/12/20 Javascript
javascript 删除数组元素和清空数组的简单方法
2017/02/24 Javascript
ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
2017/05/24 Javascript
angularjs中$http异步上传Excel文件方法
2018/02/23 Javascript
React Native日期时间选择组件的示例代码
2018/04/27 Javascript
jQuery实现的点击按钮改变样式功能示例
2018/07/21 jQuery
JavaScript基于数组实现的栈与队列操作示例
2018/12/22 Javascript
微信小程序常用的3种提示弹窗实现详解
2019/09/19 Javascript
使用python生成杨辉三角形的示例代码
2018/08/29 Python
python实现顺时针打印矩阵
2019/03/02 Python
解决Pycharm后台indexing导致不能run的问题
2019/06/27 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
2019/10/18 Python
python变量的作用域是什么
2020/05/26 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
英国精品买手店:Browns Fashion
2016/09/29 全球购物
美国知名的网上鞋类及相关服装零售商:Shoes.com
2017/05/06 全球购物
暑期实习鉴定
2013/12/16 职场文书
安全生产大检查方案
2014/05/07 职场文书
房地产开发项目建议书
2014/05/16 职场文书
三八活动策划方案
2014/08/17 职场文书
2015元旦节寄语
2014/12/08 职场文书
手术室护士个人总结
2015/02/13 职场文书
国王的演讲观后感
2015/06/03 职场文书
python实现网络五子棋
2021/04/11 Python
世界十大动漫制作公司排行榜,迪士尼上榜,第二是美国代表性文化符
2022/03/18 欧美动漫