【中级软考】函数参数传递传值与传引用的区别(global关键字,函数内定义全局变量)
传值调用最显著的特征就是被调用的函数内部对形参的修改不影响实参的值。
引用调用是将实参的地址传递给形参,使得形参的地址就是实参的地址。
(对于python而言,普通的实参传个变量(或常量)进去就相当于以上说的传值)
python:
和其他语言不一样,传递参数的时候,python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传对象引用”的方式。
实际上,这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,
就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,
就不能直接修改原始对象--相当于通过“传值’来传递对象。
例如:
传递数字时,在函数内部是不能改变它在外部的值的,但是若传的是列表之类的,在函数内部可以调用列表方法来改变它外部的值(但是使用“=”赋值也是没法改变的)
def fo1(num):num=2print(num) # 2
def fo2(list):list.append(4) # 使用列表方法可以改变它list=[4,5,6] print(list) # list=[4,5,6]if __name__ == "__main__": num=1list1=[1,2,3]fo1(num) print(num) # 1fo2(list1)print(list1) # [1, 2, 3, 4]
在函数内使用global关键字可以更改外部的值:
def fo1(num):global num1num1=num+1print(num1) # 2if __name__ == "__main__": num1=1fo1(num1)print(num1)
结果:
2
2
参考文章:python实现在函数中修改变量值的方法
【中级软考】函数参数传递传值与传引用的区别(global关键字,函数内定义全局变量)相关推荐
- java的函数传值_java 函数形参传值和传引用的区别[转]
java方法中传值和传引用的问题是个基本问题,但是也有很多人一时弄不清. (一)基本数据类型:传值,方法不会改变实参的值. publicclassTestFun { publicstaticvoidt ...
- php中什么时候用传值,php中传值与传引用的区别。什么时候传值什么时候传引用?...
java中的this与super的区别 java中的this与super的区别 1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位 代码如下: class Base { Ba ...
- PHP的传值与引用,php 传值与传引用的区别详解
摘要 腾兴网为您分享:php 传值与传引用的区别详解,掌上公交,信用管家,天翼阅读,平安知鸟等软件知识,以及k歌达人,ml2010打印机驱动,维也纳大学app,建玛特,网盘快搜,中国禁毒数字展览馆,爱 ...
- 5个php实例,细致说明传值与传引用的区别
传值:是把实参的值赋值给行参 ,那么对行参的修改,不会影响实参的值 传引用 :真正的以地址的方式传递参数传递以后,行参和实参都是同一个对象,只是他们名字不同而已对行参的修改将影响实参的值 说明: 传值 ...
- PHP面试题:请说明 PHP 中传值与传引用的区别。什么时候传值什么时候传引用?
按值传递:函数范围内对值的任何改变在函数外部都会被忽略 按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改 优缺点:按值传递时,php必须复制值.特别是对于大型的字符串和对象来说,这将会 ...
- python函数传值还是地址_python中给函数传参是传值还是传引用
首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传 ...
- 经典 Python参数传递采用的肯定是“传对象引用”的方式。相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象
python不允许程序员选择采用传值还是传引用.Python参数传递采用的肯定是"传对象引用"的方式.这种方式相当于传值和传引用的一种综合.如果函数收到的是一个可变对象(比如字典或 ...
- python中函数的参数传递(传值还是传引用)
函数的参数传递 函数参数传递有两种方式,传值和传引用,传值只是把变量的值复制一份给了实参,函数内部的操作不会改变函数外部变量的值,而传引用传递的是外部变量的地址,函数内部直接操作函数外部变量的储存空间 ...
- 2021-01-14python函数传参是传值还是传引用? 参数若是简单类型是传值 若是对象类型则是传引用,python是兼容两者传参方式的
python函数传参是传值还是传引用? 首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题. ...
最新文章
- ASP.NET 验证控件
- python与excel的应用-Python 3 读取和存储Excel数据(应用到接口测试)
- 手机主题随手机壳改变_无线充电可以与手机壳一起使用吗?
- 【交互】Omkar and the Meaning of Life(CF-1586D)
- jQuery怎么改变img的src
- Vue动态传值与接收步骤
- Spark数据统计指标计算
- mac Python安装pybloomfilter 出现找不到libcrypto的问题
- spss变量视图转数据视图_教大家SPSS如何导入数据进行分析
- C++ 平方、开方、取整运算
- python画长方形并填充颜色_关于python使用cv画矩形并填充颜色同时填充文字
- 【吐血整理】数据库的安全性
- 电商业务容器化遇瓶颈,公有云Docker镜像P2P加速很安全
- matlab一元二次回归,MATLAB一元线性回归方程的计算及检验.doc
- HDU-4414 Finding crosses
- OPENGL ES 2.0 知识串讲(2)――EGL详解
- bootstrap table表头错位,火狐浏览器下滚动条挤像素问题解决方案。
- Node.js 入门
- linux移植嵌入式系统,嵌入式系统学习——S3C2451之Linux移植步骤
- CSS基础选择器、字体和文本样式
热门文章
- 定义交货输出条件类型(Output Types)
- 【推荐】会开发和懂开发的区别
- ALV报表复制程序标准工具栏
- 如何在SAP的的凭证流浏览器(DRB)中显示客户自定义的凭证
- 拒绝“肌肉记忆”,卡萨帝迈进场景品牌新赛道
- All in会员经济的知乎,能否实现商业化大跃进?
- 软件测试黑马程序员课后答案_软件测试课后习题答案
- 计算机维护与维修课程简介,计算机维修与维护教学大纲.DOC
- mysql grant show_mysql之基础操作grant、show、repair、log_error等
- 怎么打开python shell_Python之使用adb shell命令启动应用的方法详解