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 异常处理的实例详解
Sep 11 Python
python编程通过蒙特卡洛法计算定积分详解
Dec 13 Python
python range()函数取反序遍历sequence的方法
Jun 25 Python
Python中修改字符串的四种方法
Nov 02 Python
Python enumerate函数功能与用法示例
Mar 01 Python
Python实现的统计文章单词次数功能示例
Jul 08 Python
Django+zTree构建组织架构树的方法
Aug 21 Python
使用Fabric自动化部署Django项目的实现
Sep 27 Python
python3获取文件中url内容并下载代码实例
Dec 27 Python
pyqt5 textEdit、lineEdit操作的示例代码
Aug 12 Python
Python文件操作及内置函数flush原理解析
Oct 13 Python
Python实现Hash算法
Mar 18 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编程最快明白》第六讲:Mysql数据库操作
2010/11/01 PHP
PHP中使用gettext来支持多语言的方法
2011/05/02 PHP
PHPExcel导出2003和2007的excel文档功能示例
2017/01/04 PHP
yii2实现分页,带搜索的分页功能示例
2017/01/07 PHP
php头像上传预览实例代码
2017/05/02 PHP
详解PHP5.6.30与Apache2.4.x配置
2017/06/02 PHP
PHP常见字符串操作函数与用法总结
2019/03/04 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
2020/05/26 PHP
JavaScript实际应用:innerHTMl和确认提示的使用
2006/06/22 Javascript
海量经典的jQuery插件集合
2010/01/12 Javascript
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
实现网页页面跳转的几种方法(meta标签、js实现、php实现)
2014/05/20 Javascript
推荐 21 款优秀的高性能 Node.js 开发框架
2014/08/18 Javascript
微信小程序 Image API实例详解
2016/09/30 Javascript
Angular Renderer (渲染器)的具体使用
2018/05/03 Javascript
Vue CLI3 如何支持less的方法示例
2018/08/29 Javascript
layui实现数据表格table分页功能(ajax异步)
2019/07/27 Javascript
vue2.0项目集成Cesium的实现方法
2019/07/30 Javascript
react 原生实现头像滚动播放的示例
2020/04/21 Javascript
JavaScript实现打字游戏
2021/02/19 Javascript
python 中if else 语句的作用及示例代码
2018/03/05 Python
Python对切片命名的实现方法
2018/10/16 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
2020/01/12 Python
python烟花效果的代码实例
2020/02/25 Python
python爬虫中抓取指数的实例讲解
2020/12/01 Python
python读写数据读写csv文件(pandas用法)
2020/12/14 Python
Django解决frame拒绝问题的方法
2020/12/18 Python
让IE6支持css3,让 IE7、IE8 都支持CSS3
2011/10/09 HTML / CSS
HTML5和以前HTML4的区别整理
2013/10/20 HTML / CSS
意大利买卖二手奢侈品网站:LAMPOO
2020/06/03 全球购物
Smilodox官方运动服装店:从运动服到健身配件
2020/08/27 全球购物
心得体会怎么写
2013/12/30 职场文书
2014年创先争优活动总结
2014/05/04 职场文书
党员四风问题对照检查材料
2014/09/27 职场文书
初三语文教学计划
2015/01/22 职场文书
php去除deprecated的实例方法
2021/11/17 PHP