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中在for循环中嵌套使用if和else语句的技巧
Jun 20 Python
Python实现的根据IP地址计算子网掩码位数功能示例
May 23 Python
python删除字符串中指定字符的方法
Aug 13 Python
Python多进程入门、分布式进程数据共享实例详解
Jun 03 Python
解决pyecharts在jupyter notebook中使用报错问题
Apr 23 Python
Python代码太长换行的实现
Jul 05 Python
python Django 创建应用过程图示详解
Jul 29 Python
python文字转语音的实例代码分析
Nov 12 Python
python用quad、dblquad实现一维二维积分的实例详解
Nov 20 Python
Django实现从数据库中获取到的数据转换为dict
Mar 27 Python
django使用graphql的实例
Sep 02 Python
python删除csv文件的行列
Apr 06 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
全国FM电台频率大全 - 29 青海省
2020/03/11 无线电
简单易用的计数器(数据库)
2006/10/09 PHP
生成静态页面的php函数,php爱好者站推荐
2007/03/19 PHP
pw的一个放后门的方法分析
2007/10/08 PHP
一个简洁的PHP可逆加密函数(分享)
2013/06/06 PHP
PHP中imagick函数的中文解释
2015/01/21 PHP
PHP获取星期几的常用方法小结
2018/12/18 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
2020/04/06 PHP
jquery中获得$.ajax()事件返回的值并添加事件的方法
2010/04/15 Javascript
JQuery UI的拖拽功能实现方法小结
2012/03/14 Javascript
基于JavaScript 类的使用详解
2013/05/07 Javascript
JS格式化数字金额用逗号隔开保留两位小数
2013/10/18 Javascript
jQuery检测某个元素是否存在代码分享
2015/07/09 Javascript
Javascript日期格式化format函数的使用方法
2016/08/30 Javascript
微信js-sdk地理位置接口用法示例
2016/10/12 Javascript
原生js实现轮播图
2017/02/27 Javascript
详解webpack模块化管理和打包工具
2018/04/21 Javascript
微信小程序基于canvas渐变实现的彩虹效果示例
2019/05/03 Javascript
深入理解 TypeScript Reflect Metadata
2019/12/12 Javascript
python在Windows8下获取本机ip地址的方法
2015/03/14 Python
python如何实现反向迭代
2018/03/20 Python
Python socket套接字实现C/S模式远程命令执行功能案例
2018/07/06 Python
OpenCV 边缘检测
2019/07/10 Python
Python matplotlib绘制饼状图功能示例
2019/09/10 Python
解决python Jupyter不能导入外部包问题
2020/04/15 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
利用CSS3的flexbox实现水平垂直居中与三列等高布局
2016/09/12 HTML / CSS
利用promise及参数解构封装ajax请求的方法
2021/03/24 Javascript
公司周年庆典策划方案
2014/05/17 职场文书
工程承诺书怎么写
2014/05/24 职场文书
就业协议书
2014/09/12 职场文书
2014老师三严三实对照检查材料思想汇报
2014/09/18 职场文书
高考作弊检讨书1500字
2015/02/16 职场文书
合理化建议书范文
2015/09/14 职场文书
导游词之襄阳古城
2019/09/27 职场文书
Python连接Postgres/Mysql/Mongo数据库基本操作大全
2021/06/29 Python