python 函数篇(1)
CONTENTS
- 位置参数与关键字参数
- 函数的声明
- return的用法
- 默认参数
- 注意事项
- *args 与 **kwargs
位置参数与关键字参数
1. 函数的声明
1 def func1(x, y, z): 2 ''' 3 func1****函数描述 4 :param x: x的声明 5 :param y: y的声明 6 :param z: z的声明 7 :return: 返回值的声明 8 ''' 9 print("x:", x) # 执行内容 10 print("y:", y) 11 print("z", z) 12 return print("执行完毕") # 返回内容
函数声明的关键字为def,主要包括四部分:
- 函数名建立
- 函数描述(一般写在函数名称下面。当函数名建立好后,有自动的格式生成)
- 执行内容
- 返回内容
2. return的用法
在python中,函数体既可以返回值,也可以没有返回值。
return返回时:
- 可以返回一个值,也可以返回多个值,当返回多个值时,返回的是一个元组
- 可以返回数字,字符串,列表,字典等多种类型
- 可以返回函数
- 当没有返回值时默认为none
3. 注意事项
函数在调用时,既可以使用位置参数进行传参,也可以用关键字参数的形式传参。只要记住“关键字参数不能再位置参数之前”。代码第15行将会报错。
1 def func1(x, y=2, z=3): 2 ''' 3 func1****函数描述 4 :param x: x的声明 5 :param y: y的声明 6 :param z: z的声明 7 :return: 返回值的声明 8 ''' 9 print("x:", x) # 执行内容 10 print("y:", y) 11 print("z", z) 12 return print("执行完毕") # 返回内容 13 func1(1,2,3) 14 func1(1,y=2,z=3) # 执行效果相同,关键字参数 15 # func1(1,y=2,3) # 这样写不对,关键字参数不能写在位置参数之前
4. 默认参数
在函数声明时可以设置默认参数,但默认参数应放在最后。默认参数可以不赋值,不赋值将采取默认值,赋值则会替换。
1 def func1(x, y=2, z=3): 2 ''' 3 func1****函数描述 4 :param x: x的声明 5 :param y: y的声明 6 :param z: z的声明 7 :return: 返回值的声明 8 ''' 9 print("x:", x) # 执行内容 10 print("y:", y) 11 print("z", z) 12 return print("执行完毕") # 返回内容 13 func1(1,1,2) 14 func1(1,y=1,z=2) # 执行效果相同,关键字参数
*args 与 **kwargs
*args 接受位置参数, 返回的是一个元组
**kwargs 接受关键字参数, 返回的是字典
1. *args
*args可以有赋值,也可以没有赋值,没有赋值返回一个空的元组。
*args的位置必须在位置参数和关键字参数之后,接受除位置参数和关键字参数赋值之外的位置参数,如果接受的参数中包含关键字参数将会报错。
1 def func1(x, y=2, *args): 2 '''只有*args''' 3 print(x) 4 print(y) 5 print(args) 6 return print("执行完毕") 7 8 func1(1) # 如果y=2想省略赋值, 那么*args便不能再赋值 这时将返回一个空的元组 9 func1(1, 3, 4, 5, 6) # 输出的结果是1 3 (4,5,6) 10 func1(1, "圣所", 32, ["lve"], {2:1}) # 这样也可以
2. **kwargs
**kwargs同样也可以有赋值,也可以没有赋值,没有赋值返回一个空的字典。
**kwargs的位置必须位于最后(位置参数和关键字参数之后,*args之后)。 接受最后的关键字参数。
因为**kwargs返回的是一个字典,而字典由键-值对构成,因此需要关键字参数作为字典的键。
1 def func2(x, y=3, **kwargs): 2 ''' 只有**kwargs 这时便不能再只按位置参数调用''' 3 print(x) 4 print(y) 5 print(kwargs) 6 return print("func2 执行完毕") 7 # func2(1, 2, 3, 4, 5, 6) # 这时会报错 8 func2(1, y=2, c=3, d=4) # 必须是关键字参数,因为kwargs 返回的是字典,字典需要有键,所以需要关键字做键
3. *args与**kwargs一起使用时
参数的顺序:位置参数 - 关键字参数 - *args - **kwargs, 之前介绍过,关键字参数不能再位置参数之前。
1 def func3(x, *args, **kwargs): 2 print(x) 3 print(args) 4 print(kwargs) 5 return print("func3 执行完毕") 6 func3(1, 3, 4, 5, z=2) # 此处的最后不能写x=2
-------------------------------------------
算法届的小学生,虔诚而不迷茫,做一个懂生活并有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个 [推荐] 噢! 欢迎共同交流机器学习,机器视觉,深度学习~
欢迎转载,转载请声明出处!