Python按值传递参数和按引用传递参数
Python按值传递参数和按引用传递参数:
按值传递参数:
使用一个变量的值(数字,字符串),放到实参的位置上
注:传递过去的是变量的副本,无论副本在函数中怎么变,变量的值都不变
传递常量:
# 传递常量 # 定义一个函数,输出 欢迎,接收到的参数 name
def huanying(name):
print("欢迎",name)
huanying("小明")
# 欢迎 小明 # 定义一个求长方形面积的函数,要求具有返回值且参数为 height 和 width
def area(height,width):
return height * width mianji = area(5,4)
print(mianji)
#
传递变量:
# 传递变量 # 定义一个函数,输出 欢迎,接收到的参数 name
def huanying(name):
print("欢迎",name)
strs_name = "小明"
huanying(strs_name)
# 欢迎 小明 # 定义一个求长方形面积的函数,要求具有返回值且参数为 height 和 width
def area(height,width):
return height * width
height = 5
width = 4 mianji = area(height,width)
print(mianji)
#
按引用传递:
输出 列表、元组 和 集合所有元素的总和
# 按引用传递 lst = [1,2,3,4]
tuple_1 = (4,5,7)
se = {9,6,5,8} def add(args):
'''将 args 中的元素总和输出'''
print(sum(args)) add(lst)
#
add(tuple_1)
#
add(se)
# # 输出程序的注释
print(add.__doc__)
# 将 args 中的元素总和输出
使用函数,将参数引用传递输出参数中的奇数
# 按引用传递 lst = [1,2,3,4]
tuple_1 = (4,5,7) def jishu(args):
'''将 args 中的奇数输出'''
for i in range(len(args)):
if args[i] % 2 == 1:
print(args[i], end = " ")
print()
jishu(lst)
# 1 3
jishu(tuple_1)
# 5 7 # 输出程序的注释
print(jishu.__doc__)
# 将 args 中的奇数输出
如果参数发生修改
1.原参数如果为可变类型(列表、集合、字典)则也跟着修改
2.原参数如果为不可变类型(数字、字符串、元组)则不发生改变
示例:
列表在函数中调用方法,列表本身发生改变
def add_elem(args,string):
'''将 lst_num 添加到 args 中''' args.append(string)
# args += string
# args.extend(string)
# args.insert(len(args),string) return args lst = [1,2,3,4] string = "ABC" print(add_elem(lst,string))
# [1, 2, 3, 4, 'A', 'B', 'C']
print(lst)
# [1, 2, 3, 4, 'ABC']
在函数中,如果列表作为实参,形参发生修改时,列表值发生改变
def add_elem(args,string):
'''将 lst_num 添加到 args 中''' args[len(args)-1] = string return args lst = [1,2,3,4] string = "ABC" print(add_elem(lst,string))
# [1, 2, 3, 'ABC']
print(lst)
# [1, 2, 3, 'ABC']
2020-02-11
Python按值传递参数和按引用传递参数的更多相关文章
- Java中只有按值传递,没有按引用传递!(两种参数情况下都是值传递)
今天,我在一本面试书上看到了关于java的一个参数传递的问题: 写道 java中对象作为参数传递给一个方法,到底是值传递,还是引用传递? 我毫无疑问的回答:“引用传递!”,并且还觉得自己对java的这 ...
- Python解析命令行读取参数 -- argparse模块
在多个文件或者不同语言协同的项目中,python脚本经常需要从命令行直接读取参数.万能的python就自带了argprase包使得这一工作变得简单而规范.PS:optparse包是类似的功能,只不过写 ...
- Python——函数的命名关键字参数
命名关键字参数 对于关键字参数,函数的调用者可以传入任意不受限制的关键字参数.至于到底传入了哪些,就需要在函数内部通过kw检查. 仍以person()函数为例,我们希望检查是否有city和job参数: ...
- Java可变参数 & Python可变参数 & Scala可变参数
Java 可变参数的特点: (1).只能出现在参数列表的最后: (2)....位于变量类型和变量名之间,前后有无空格都可以: (3).调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体 ...
- Python进阶04 函数的参数对应
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们已经接触过函数(function)的参数(arguments)传递.当时我们根 ...
- python函数 位置参数,关键字参数,可变参数优先级
def fun(arg,args=1,*arg,**keywords): python 一共有这四类参数,第一类最常见,不用多说,第二类,关键字参数,python能通过关键字找到参数,python函数 ...
- python函数基础以及函数参数简解
python中函数分为函数.内置函数Python所有的内置函数 自定义函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. ...
- python中的函数的参数和可变参数
最近在搞python的过程中需要用到给函数传可变参数..所以去网上找前人的帖子学习了一下 为了尊重原作者,这里附上链接:http://www.cnblogs.com/tqsummer/archive/ ...
- Python学习6.1_函数参数及参数传递
大多数编程语言都绕不开一个名词,那就是--函数(function).而函数很重要的部分则是参数(arguments)的使用.Python的参数传递总体来说是根据位置,传递对应的参数.阐述如下: 1.位 ...
随机推荐
- IDEA从Github中Clone Maven项目,解决树形目录及Jar包依赖的问题
很多人在开发中都会碰到的一个问题,当我们用IDEA从Github中检出Maven工程后(Java),发现既不能运行,也不能编译,左侧的树形目录还怪怪的,现在就来说说如何解决这个问题. IDEA从git ...
- EOS基础全家桶(十四)智能合约进阶
简介 通过上一期的学习,大家应该能写一些简单的功能了,但是在实际生产中的功能需求往往要复杂很多,今天我就继续和大家分享下智能合约中的一些高级用法和功能. 使用docker编译 如果你需要使用不同版本的 ...
- 隐写工具outguess安装使用介绍
0x00 outguess下载安装 Kail终端命令输入git clone https://github.com/crorvick/outguess 安装包随即下载到文件夹.双击打开文件夹,右键点 ...
- Jenkins Pipeline 部署 SpringBoot 应用
一. 安装依赖包 yum install -y wget yum install -y gcc-c++ yum install -y zlib-devel perl-ExtUtils-MakeMake ...
- wcf服务各种情况下应用
1.控制台调用 第一步,添加wcf服务 2.写接口,记得要加好契约特性. 3.声明一个类继承wcf服务. 4.ipconfig配置 5.控制台运行 6.运行app.config里面,加上调用的接口方法 ...
- SQL批量插入数据【万级】
1.每4000条插入一次 for (int i = 0; i < dt.Rows.Count; i++) { IsTBProductForStockInfo model = new IsTBPr ...
- Mysql基础(八):MySQL 表的一对一、一对多、多对多问题
将实体与实体的关系,反应到最终数据库表的设计上,将关系分为三种:一对一,一对多(多对一)和多对多,所有的关系都是表与表之间的关系; 一对一 一对一:一张表的一条记录只能与另外一条记录进行对应,反之亦然 ...
- 机器学习实战基础(二十):sklearn中的降维算法PCA和SVD(一) 之 概述
概述 1 从什么叫“维度”说开来 我们不断提到一些语言,比如说:随机森林是通过随机抽取特征来建树,以避免高维计算:再比如说,sklearn中导入特征矩阵,必须是至少二维:上周我们讲解特征工程,还特地提 ...
- 重学c#系列——c#运行原理(二)
前言 c# 是怎么运行的呢?是否和java一样运行在像jvm的虚拟机上呢?其实差不多,但是更广泛. c# 运行环境不仅c#可以运行,符合.net framework 开发规范的都可以运行. c# 程序 ...
- vue + echart 实现中国地图 和 省市地图(可切换省份)
一.中国地图 1.先导入echarts,然后再main.js里引入echarts // 引入echartsimport echarts from 'echarts'Vue.prototype.$ech ...