函数的返回值
-
如果函数没有返回值【函数执行完毕之后,不需要给调用处提供数据】 return可以省略不写
-
函数的返回值如果是一个,直接返回原类型
-
函数的返回值如果是多个,返回的结果为元组
函数的参数定义
- 默认值参数
函数定义时,给形参设置默认值,只有与默认值不符的时候才需要传递实参
def fun(a, b=10): # b称为默认值参数
print(a, b)
# 函数的调用
fun(100)
fun(20, 30)
100 10
20 30
-
个数可变的位置参数
- 定义函数时,无法事先确定传递的位置实参的个数时,使用可变的位置参数
- 使用*定义个数可变的位置参数
- 结果为一个元组
def fun(*args): # 函数定义时的,可变的位置参数
print(args)
print(args[0])
fun(10)
fun(10, 30)
fun(30, 405, 50)
(10,)
10
(10, 30)
10
(30, 405, 50)
30
-
个数可变的关键字形参
- 定义函数时,无法事先确定传递的关键字实参的个数时,使用可变的关键字形参
- 使用**定义个数可变的关键字形参
- 结果为一个字典
def fun1(**args):
print(args)
fun1(a=10)
fun1(a=20, b=30, c=40)
{'a': 10}
{'a': 20, 'b': 30, 'c': 40}
个数可变的位置参数和个数可变的关键字参数只能有一个
在一个函数的定义过程当中既有个数可变的关键字形参,也有个数可变的位置形参时要求个数可变的位置形参要放在个数可变的关键字形参之前.
eg:
def fun(*args1, **args2):
pass # 不会报错,个数可变的位置参数在关键字形参之前
def fun(**args1, *args2):
pass # 报错,个数可变的位置参数要在关键字形参之前
def fun(*args, *a):
pass # 报错,个数可变的位置参数和个数可变的关键字参数只能有一个
def fun(**args1, **args2):
pass # 报错,个数可变的位置参数和个数可变的关键字参数只能有一个