1 函数的文档注释
- 在开发中,如果希望给函数添加注释,应该在定义函数的下方,使用连续的三对引号
- 在连续的三对引号之间编写对函数的说明文字
- 在函数调用位置,使用快捷键CTRL + Q可以查看函数的说明信息
注意:因为函数体相对比较独立,函数定义的上方,应该和其他代码(包括注释)保留两个空行
2. 函数的返回值
在程序开发中,有时候,会希望一个函数执行结束后,告诉调用者一个结果,以便调用者针对具体的结果做后续的处理
- 返回值是函数完成工作后,最后给调用者的一个结果
- 在函数中使用return关键字可以返回结果
- 调用函数一方,可以使用变量来接收函数的返回结果
注意:return表示返回,后续的代码都不会被执行
def sum2num(num1, num2): """对两个数字的求和"""return num1 + num2
3.调用函数,并使用 result 变量接收计算结果
result = sum2num(10, 20)print("计算结果是 %d" % result)
4.不可变和可变的参数
问题 1:在函数内部,针对参数使用赋值语句,会不会影响调用函数时传递的实参变量? —— 不会!
- 无论传递的参数是可变还是不可变
- 只要针对参数使用赋值语句,会在函数内部修改局部变量的引用,不会影响到 外部变量的引用
问题 2:如果传递的参数是可变类型,在函数内部,使用方法修改了数据的内容,同样会影响到外部的数据 ```python def demo(num_list):
print(“函数内部的代码”)
使用方法修改列表的内容
num_list.append(9)
print(num_list)
print(“函数执行完成”)
gl_list = [1, 2, 3] demo(gl_list) print(gl_list)
<a name="mnFDJ"></a>## 5.定义支持多值参数的函数有时可能需要**一个函数**能够处理的参数**个数**是不确定的,这个时候,就可以使用**多值参数**- python中有**两种**多值参数:- 参数名前增加**一个***可以接收**元组**- 参数名前增加**两个***可以接收**字典**- 一般在给多值参数命名时,**习惯**使用以下两个名字- *args—— 存放**元组**参数,前面有一个*- **kwargs—— 存放**字典**参数,前面有两个*- args是arguments的缩写,有变量的含义- kw是keyword的缩写,kwargs可以记忆**键值对参数**```pythondef demo(num, *nums, **person):print(num)print(nums)print(person)# demo(1)demo(1, 2, 3, 4, 5, name="小明", age=18)
6.元组和字典的拆包(知道)
- 在调用带有多值参数的函数时,如果希望:
- 将一个元组变量,直接传递给args
- 将一个字典变量,直接传递给kwargs
就可以使用拆包,简化参数的传递,拆包的方式是:
- 在元组变量前,增加一个*
在字典变量前,增加两个* ```python def demo(args, *kwargs):
print(args) print(kwargs)
元组变量/字典变量
gl_nums = (1, 2, 3) gl_dict = {“name”: “小明”, “age”: 18}
demo(gl_nums, gl_dict)
拆包语法,简化元组变量/字典变量的传递
demo(gl_nums, *gl_dict)
demo(1, 2, 3, name=”小明”, age=18)
```
