Python函数高级应用详解:函数调用、参数打包和变量作用域
版权申诉
15 浏览量
更新于2024-08-26
收藏 95KB PDF 举报
Python 函数高级应用
本文档主要介绍 Python 函数的高级应用,包括函数的定义、函数调用的步骤、参数的打包和解包、变量的作用域等。
一、函数的定义和调用
在 Python 中,函数的定义格式为 `def 函数名(形式参数): 函数体`。函数的封装就是实现代码块的复用,Python 内置了一些基础的函数,开发者也可以自己定义函数。函数只能先定义,再进行调用。
函数的调用步骤包括:
1. 程序遇到函数调用的情况时,暂停执行
2. 将实际参数值传递给函数参数
3. 执行函数体语句
4. 返回值并继续向下执行
二、参数的打包和解包
参数的打包指的是多个参数可以同时处理,也叫可变长度参数。可变长度参数在定义函数时主要有两种形式 `*parameter` 和 `**parameter`。前者用来接受任意多个参数并将其放在一个元组当中,后者接收多个关键参数组成键值对并将其放在字典当中。
打包为元组的示例代码为:
```python
def demo(*p):
print(p)
demo(1, 2, 3, 4, 5, 6)
# 结果
(1, 2, 3, 4, 5, 6)
```
打包为字典的示例代码为:
```python
def demo(**p):
print(p)
demo(x=1, y=2, z=3)
# 结果
{'x': 1, 'y': 2, 'z': 3}
```
参数的打包就是将形参设为 `*参数名` 形式,实参为多个参数,这是后会将多个参数处理为元组或字典的可迭代对象,是把个体打包为整体。
参数的解包同样也有两种形式 `*s` 和 `**s`。调用含有多个位置参数的函数时,可以使用列表、元组、集合等可迭代对象作为实参,在实参名前面加一个 `*`,Python 会自动对其进行解包,并把序列中的值分别传递给多个形参变量。
示例代码为:
```python
def demo(a, b, c, d):
print(a + b * c / d)
list1 = [1, 2, 3, 4]
demo(*list1)
# 结果
2.5
```
如果实参是一个字典,可以使用 `**参数名` 形式对其进行解包操作,会把字典转换成为类似关键参数的形式进行参数传递。
示例代码为:
```python
s = {'a': 1, 'b': 2, 'c': 3}
def demo(a, b, c=4):
print(a, b, c)
demo(**s)
# 结果
1 2 3
```
三、变量的作用域
变量的作用域就是变量能够作用的空间。变量按照作用域划分为全局变量和局部变量。全局变量是在函数体外定义的变量,为全局变量。全局变量在函数内外都能够使用,但在函数内对全局变量的修改将影响全局变量的值。
局部变量是在函数体内定义的变量,为局部变量。局部变量只能在函数体内使用,函数体外不能访问局部变量。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-12-03 上传
2021-12-05 上传
2021-12-03 上传
2021-12-03 上传
2021-12-03 上传
2021-12-03 上传
一诺网络技术
- 粉丝: 0
- 资源: 2万+
最新资源
- DWR中文文档pdf
- ADHOC网络中的一种QOS_AWARE多径路由协议.pdf
- U—Boot及Linux2.6在S3C2440A平台上的移植方法
- Core+Java (Java核心技术卷1)
- stc89c51系列单片机使用手册
- Verilog 黄金参考指南
- Silverlight完美入门.pdf
- 领域驱动设计 domain driven design
- VLAN典型配置方案
- 02/03注册电气工程师模拟试题-模拟电子技术基础
- 关于操作反射的部分代码
- Ubuntu 参考手册
- 中国矿业大学电拖试题
- ASP.NET加密教程(MD5和SHA1加密几种方法)
- linux -shell手册
- 信息发布系统毕业论文 (asp+sql2000)