08函数的参数 进阶
生活随笔
收集整理的这篇文章主要介绍了
08函数的参数 进阶
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
1 不可变和可变的参数
问题1: 在函数内部, 针对参数使用 赋值语句, 会不会影响调用函数传递的 实参变量? -- 不会!
- 无论传递的参数是 可变 还是 不可变
- 只要 针对参数 使用 赋值语句, 会在 函数内部 修改 局部变量的引用, 不会影响到 外部变量的引用
问题2: 如果传递的参数是 可变类型, 在函数内部, 使用 方法 修改了数据的内容, 同样会影响到外部的数据
1 def demo(num_list): 2 3 print("函数内部的代码") 4 5 # 使用方法修改列表的内容 6 num_list.append(4) 7 print(num_list) 8 print("函数执行完成") 9 10 11 gl_list = [1, 2, 3] 12 demo(gl_list) 13 print(gl_list)在 python 中, 列表变量调用 += 本质上是在执行列表变量的 extend 方法, 不会修改变量的引用
1 def demo(num, num_list): 2 3 print("函数内部的代码") 4 5 # 使用方法修改列表的内容 6 num += num 7 # 本质上是在动用列表的 extend 方法 8 num_list += num_list 9 print(num) 10 print(num_list) 11 print("函数执行完成") 12 13 14 gl_num = 2 15 gl_list = [1, 2, 3] 16 demo(gl_num, gl_list) 17 18 print(gl_num) 19 print(gl_list) 20 21 # 函数执行结果 22 # 4 23 # [1, 2, 3, 1, 2, 3] 24 # 函数执行完成 25 # 2 26 # [1, 2, 3, 1, 2, 3]2 缺省参数
- 定义函数时, 可以给 某个参数 指定一个 默认值, 具有默认值的参数就叫做 缺省参数
- 调用函数时, 如果没有传入 缺省参数 的值, 则在函数内部使用定义函数时指定的 参数默认值
- 函数的缺省参数, 将常见的值设置为参数的缺省值, 从而 简化函数的调用
- 例如 : 对列表排序的方法
指定函数的缺省参数
- 在参数后使用赋值语句, 可以指定参数的缺省值
提示
缺省参数的注意事项
1) 缺省参数的定义位置
- 必须保证 带有默认值的缺省参数 在参数列表末尾
2) 调用带有多个缺省参数的函数
- 在 调用函数时, 如果有 多个缺省参数, 需要指定参数名, 这样解释器才能够知道参数的对应关系!
3 多值参数
定义支持多值参数的函数
有时可能需要 一个函数 能够处理的参数 个数 是不确定的, 这个时候, 就可以使用 多值参数
python 中有 两种 多只参数:
- 参数名前增加 一个 * 可以接收 元组
- 参数名前增加 两个 * * 可以接收 字典
一般在给多值参数命名时, 习惯使用一下两个名字
- *args ---- 存放 元组 参数, 前面有一个 *
- **kwargs ---- 存放 字典 参数, 前面有两个 *
args 是 arguments 的缩写, 有变量的含义
kw 是 keyword 的缩写, kwargs 可以记忆 键值对参数
多值求和
1 def sum_numbers(*args): 2 3 num = 0 4 5 print(args) 6 # 循环遍历 7 for n in args: 8 num += n 9 return num 10 11 12 result = sum_numbers(1, 2, 3) 13 14 print(result) 15 16 17元组和字典的拆包
在调用带有多值参数的函数时, 如果希望:
- 将一个 元组变量, 直接传递给 args
- 将一个 字典变量, 直接传递给 kwargs
就可以使用 拆包, 简化参数的传递, 拆包 的方式是:
- 在 元组变量前, 增加 一个 *
- 在 字典变量前, 增加 两个*
转载于:https://www.cnblogs.com/xinmomoyan/p/10346072.html
总结
以上是生活随笔为你收集整理的08函数的参数 进阶的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 每周一个 Python 模块 | has
- 下一篇: 30 ArcGIS 许可管理器常见问题(