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通过装饰器检查函数参数数据类型的方法
Mar 13 Python
Python中json格式数据的编码与解码方法详解
Jul 01 Python
pandas 两列时间相减换算为秒的方法
Apr 20 Python
Python之dict(或对象)与json之间的互相转化实例
Jun 05 Python
解决pyinstaller打包exe文件出现命令窗口一闪而过的问题
Oct 31 Python
python3.6数独问题的解决
Jan 21 Python
对python 通过ssh访问数据库的实例详解
Feb 19 Python
Flask框架实现的前端RSA加密与后端Python解密功能详解
Aug 13 Python
pytorch实现建立自己的数据集(以mnist为例)
Jan 18 Python
python 写一个性能测试工具(一)
Oct 24 Python
matplotlib绘制鼠标的十字光标的实现(自定义方式,官方实例)
Jan 10 Python
Python利用Turtle绘制哆啦A梦和小猪佩奇
Apr 04 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
星际玩家的三大定律
2020/03/04 星际争霸
杏林同学录(五)
2006/10/09 PHP
php下实现农历日历的代码
2007/03/07 PHP
php+mysql实现的二级联动菜单效果详解
2016/05/10 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
2017/09/29 PHP
ExtJS下grid的一些属性说明
2009/12/13 Javascript
jquery插件制作简单示例说明
2012/02/03 Javascript
javascript中input中readonly和disabled区别介绍
2012/10/23 Javascript
javascript实现的右下角弹窗实例
2015/04/24 Javascript
基于javascript实现数字英文验证码
2017/01/25 Javascript
浅谈vuejs实现数据驱动视图原理
2018/02/23 Javascript
angular实现页面打印局部功能的思考与方法
2018/04/13 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
2019/04/26 Javascript
微信小程序缓存过期时间的使用详情
2019/05/12 Javascript
20道JS原理题助你面试一臂之力(必看)
2019/07/22 Javascript
jQuery Raty星级评分插件使用方法实例分析
2019/11/25 jQuery
JS组件库AlloyTouch实现图片轮播过程解析
2020/05/29 Javascript
javascript解析json格式的数据方法详解
2020/08/07 Javascript
详解supervisor使用教程
2017/11/21 Python
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
Python实现线程状态监测简单示例
2018/03/28 Python
简单实现python聊天程序
2018/04/01 Python
Python实现聊天机器人的示例代码
2018/07/09 Python
PyQt使用QPropertyAnimation开发简单动画
2020/04/02 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
2020/11/24 Python
世界上最好的足球商店:Unisport
2019/03/02 全球购物
美国沃尔玛网上超市:Walmart
2020/08/14 全球购物
师范学院教师自荐书
2014/01/31 职场文书
社区反邪教工作方案
2014/06/16 职场文书
酒后驾车标语
2014/06/30 职场文书
博士生求职信
2014/07/06 职场文书
2014年党员教师自我剖析材料
2014/09/30 职场文书
财务工作个人总结
2015/02/27 职场文书
劳务派遣管理制度(样本)
2019/08/23 职场文书
Win11 PC上的Outlook搜索错误怎么办?
2022/07/15 数码科技