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实现批量修改文件名实例
Jul 08 Python
python使用clear方法清除字典内全部数据实例
Jul 11 Python
Python数据类型详解(二)列表
May 08 Python
判断python字典中key是否存在的两种方法
Aug 10 Python
Python3 SSH远程连接服务器的方法示例
Dec 29 Python
Python3 串口接收与发送16进制数据包的实例
Jun 12 Python
python 的 openpyxl模块 读取 Excel文件的方法
Sep 09 Python
Python @property原理解析和用法实例
Feb 11 Python
django中related_name的用法说明
May 20 Python
python3中编码获取网页的实例方法
Nov 16 Python
python调用百度API实现人脸识别
Nov 17 Python
python绘图模块之利用turtle画图
Feb 12 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
Mysql和网页显示乱码解决方法集锦
2008/03/27 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
ThinkPHP快速入门实例教程之数据分页
2014/07/01 PHP
php判断并删除空目录及空子目录的方法
2015/02/11 PHP
tp5(thinkPHP5)操作mongoDB数据库的方法
2018/01/20 PHP
PHP code 验证码生成类定义和简单使用示例
2020/05/27 PHP
JavaScript For Beginners(转载)
2007/01/05 Javascript
js 操作select相关方法函数
2009/12/06 Javascript
模拟jQuery中的ready方法及实现按需加载css,js实例代码
2013/09/27 Javascript
JS小功能(checkbox实现全选和全取消)实例代码
2013/11/28 Javascript
jQuery实现文本展开收缩特效
2015/06/03 Javascript
jQuery EasyUI中的日期控件DateBox修改方法
2016/11/09 Javascript
javascript实现简单的可随机变色网页计算器示例
2016/12/30 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
JS实现本地存储信息的方法(基于localStorage与userData)
2017/02/18 Javascript
JavaScript闭包的简单应用
2017/09/01 Javascript
原生JS实现瀑布流插件
2018/02/06 Javascript
关于node-bindings无法在Electron中使用的解决办法
2018/12/18 Javascript
Vue.extend实现挂载到实例上的方法
2019/05/01 Javascript
vue按需加载实例详解
2019/09/06 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
2019/09/20 Javascript
js实现掷骰子小游戏
2019/10/24 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
2020/03/04 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
Python实现简单的HttpServer服务器示例
2017/09/25 Python
python腾讯语音合成实现过程解析
2019/08/01 Python
Python Django view 两种return的实现方式
2020/03/16 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
2020/04/14 Python
CSS3结构性伪类选择器九种写法
2012/04/18 HTML / CSS
可能这些是你想要的H5软键盘兼容方案(小结)
2019/04/23 HTML / CSS
俄罗斯的精英皮具:Wittchen
2018/01/29 全球购物
拥有超过850家商店的美国在线派对商店:Party City
2018/10/21 全球购物
会议主持词
2014/03/17 职场文书
《妈妈别哭,有我在》读后感3篇
2020/01/13 职场文书
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js
Windows Server 修改远程桌面端口的实现
2022/06/25 Servers