网站首页 > 技术文章 正文
在调用函数时,通常会传递参数,函数内部的代码保持不变,针对 不同的参数处理不同的数据。
有位置传参、关键字传参、默认值参数、多值参数等。
1、参数传递
形参和实参:
- 形参:定义 函数时的 参数变量
- 实参:调用 函数时,使用的参数变量
参数传递的过程,就是 把实参的引用 传递给 形参 ,使用实参的值来执行函数体的过程。
在 Python 中,函数的 实参/返回值 都是是靠 引用 来传递来的
2、位置实参
按照参数位置,依次传递参数,这是最普通的方式。
3、关键字实参
如果不想严格按照顺序传递参数,也可以按关键字传递。
4、缺省参数
定义函数时,可以给 某个参数 赋值一个默认值,具有默认值的参数就叫做 缺省参数
- 调用函数时,如果没有传入 缺省参数 的值,则在函数内部使用 参数默认值
- 将常见的值设置为参数的缺省值,从而 简化函数的调用
- 要使用 最常见的值 作为默认值
- 如果一个参数的值 不能确定,则不应该设置默认值,具体的数值在调用函数时,由外界传递!
例如:对列表排序的方法
缺省参数的定义位置:
- 必须保证带有默认值的缺省参数在参数列表末尾!
调用带有多个缺省参数的函数:
- 在 调用函数时,如果有 多个缺省参数,需要指定参数名,这样解释器才能够知道参数的对应关系!
5、多值参数
当函数需要处理的参数个数不确定时,可使用 多值参数。
python 中有两种多值参数:
- 接收 元组:参数名前加 一个 *
- 接收 字典:参数名前加 两个 *
一般在给多值参数命名时,习惯使用以下两个名字
- *args — 存放 元组 参数
- **kwargs — 存放 字典 参数,(kw 即 keyword,kwargs 即 键值对参数)
拆包
在上面多值参数传递时,实际上使用了拆包功能。
拆包主要用于元组和字典参数的传递。
在调用带有多值参数的函数时,使用拆包简化参数的传递:
- 直接将一个 元组变量 实参传递给元组形参 args
- 在 元组变量前,加 *
- 直接将一个 字典变量 实参传递给字典形参 kwargs
- 在 字典变量前,加 **
猜你喜欢
- 2025-03-12 我实现了Java多返回值
- 2025-03-12 「洞唐Coder」自学Python编程的第0021天:自定义函数(下)
- 2025-03-12 Python函数的10个级别,你达到了第几级?
- 2025-03-12 Python中的元组和列表的相同点和不同点是啥呢么?
- 2025-03-12 Python有序对象元组处理技术
- 2025-03-12 Python 中的函数和模块
- 2025-03-12 震惊!Python中定义函数竟然这样用,你知道吗?
- 2025-03-12 Python中的元组详解
- 2025-03-12 python编程解方程第二弹:10行代码解二次方程(纯字符)
- 2025-03-12 3分钟掌握Python 中的元组
- 08-06中等生如何学好初二数学函数篇
- 08-06C#构造函数
- 08-06初中数学:一次函数学习要点和方法
- 08-06仓颉编程语言基础-数据类型—结构类型
- 08-06C++实现委托机制
- 08-06初中VS高中三角函数:从"固定镜头"到"360°全景",数学视野升级
- 08-06一文讲透PLC中Static和Temp变量的区别
- 08-06类三剑客:一招修改所有对象!类方法与静态方法的核心区别!
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- windowsscripthost (69)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (70)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)