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按值传递参数和按引用传递参数的更多相关文章

  1. Java中只有按值传递,没有按引用传递!(两种参数情况下都是值传递)

    今天,我在一本面试书上看到了关于java的一个参数传递的问题: 写道 java中对象作为参数传递给一个方法,到底是值传递,还是引用传递? 我毫无疑问的回答:“引用传递!”,并且还觉得自己对java的这 ...

  2. Python解析命令行读取参数 -- argparse模块

    在多个文件或者不同语言协同的项目中,python脚本经常需要从命令行直接读取参数.万能的python就自带了argprase包使得这一工作变得简单而规范.PS:optparse包是类似的功能,只不过写 ...

  3. Python——函数的命名关键字参数

    命名关键字参数 对于关键字参数,函数的调用者可以传入任意不受限制的关键字参数.至于到底传入了哪些,就需要在函数内部通过kw检查. 仍以person()函数为例,我们希望检查是否有city和job参数: ...

  4. Java可变参数 & Python可变参数 & Scala可变参数

    Java 可变参数的特点: (1).只能出现在参数列表的最后: (2)....位于变量类型和变量名之间,前后有无空格都可以: (3).调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体 ...

  5. Python进阶04 函数的参数对应

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们已经接触过函数(function)的参数(arguments)传递.当时我们根 ...

  6. python函数 位置参数,关键字参数,可变参数优先级

    def fun(arg,args=1,*arg,**keywords): python 一共有这四类参数,第一类最常见,不用多说,第二类,关键字参数,python能通过关键字找到参数,python函数 ...

  7. python函数基础以及函数参数简解

    python中函数分为函数.内置函数Python所有的内置函数 自定义函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. ...

  8. python中的函数的参数和可变参数

    最近在搞python的过程中需要用到给函数传可变参数..所以去网上找前人的帖子学习了一下 为了尊重原作者,这里附上链接:http://www.cnblogs.com/tqsummer/archive/ ...

  9. Python学习6.1_函数参数及参数传递

    大多数编程语言都绕不开一个名词,那就是--函数(function).而函数很重要的部分则是参数(arguments)的使用.Python的参数传递总体来说是根据位置,传递对应的参数.阐述如下: 1.位 ...

随机推荐

  1. py之logging模块

    参考:https://www.cnblogs.com/yuanchenqi/articles/5732581.html 一 (简单应用) import logging logging.debug('d ...

  2. CentOS 7 内核更新后删除旧内核(转载)

    CentOS 7 内核更新后删除旧内核 0.当前 # uname -sr Linux 3.10.0-123.20.1.el7.x86_64 1.搜索查询 # rpm -q kernel kernel- ...

  3. Springboot 2.X的RequestMapping 的映射路径怎么看不到了?

    在使用spring boot 1.X的时候我们可以在console中看到mapping的映射路径 2020-01-12 19:10:19.996 INFO 2711 --- [ main] s.w.s ...

  4. Wooden Stricks——两个递增条件的线性DP

    题目 一堆n根木棍.每个棒的长度和重量是预先已知的.这些木棒将由木工机械一一加工.机器需要准备一些时间(称为准备时间)来准备处理木棍.设置时间与清洁操作以及更换机器中的工具和形状有关.木工机械的准备时 ...

  5. HDU 3686 Traffic Real Time Query System (图论)

    HDU 3686 Traffic Real Time Query System 题目大意 给一个N个点M条边的无向图,然后有Q个询问X,Y,问第X边到第Y边必需要经过的点有多少个. solution ...

  6. Redis 6.0 redis-cluster-proxy 说明

    背景 Redis3.0版本之后开始支持了Redis Cluster,Redis也开始有了分布式缓存的概念.关于Redis Cluster的相关说明,可以看之前的几篇文章:Redis Cluster 原 ...

  7. 获取本机SqlServer名称

    using System.Data.Sql; //检索包含有关可用SQL Server实例的信息的表,必须先使用共享/静态Instance属性来检索枚举器 SqlDataSourceEnumerato ...

  8. python中os模块用法大全

    os.listdir(dirname):列出dirname下的目录和文件 os.getcwd():获得当前工作目录 os.chdir(dirname):改变工作目录到dirname os.path.r ...

  9. 用svg实现一个环形进度条

    svg实现环形进度条需要用到的知识: 1.会使用path的d属性画一个圆环 //用svg的path元素的A命令画圆 <path d=" M cx cy m 0 -r a r r 0 1 ...

  10. Python之函数、递归、内置函数

    本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 主要作用: 去重 关系测 ...