函数(一)
函数基础
把代码进行封装,组成一个通用的模板。输入参数,输出返回值。
函数的返回值
return
1、默认返回None
2、可以返回多个值
3、可以返回任何类型的值
4、return在返回值的同时,终止函数
函数对象
Python中一切皆对象
可以把函数赋值给变量
函数参数的应用
形参
位置形参
默认形参
特点:在定义阶段就已经被赋值,意味着在调用时可以不用为其赋值。
注意:
- 位置形参必须放在默认形参的左边。
- 默认形参的值只在定义阶段赋值一次,也就是说默认参数的值在函数定义阶段就已经固定了。
实参
位置实参
关键字实参
特点:可以打破位置的限制,但仍能为指定的形参赋值。
注意:
- 可以混用位置实参和关键字实参,但是位置实参必须在关键字实参的左边。
- 可以混用位置实参和关键字实参,但不能对一个形参重复赋值。
可变长参数
可变长实参
self_max(*a, **b)
作为实参时,a是一个列表或元组
def sum_cul(a, b, c, x, y, z):
return a + b + c + x + y + z
test_list = [1, 2, 3]
test_tupple = (4, 5, 6)
print(sum_cul(*test_list, *test_tupple))
# 本来需要传入6个单独的实参,但我们用了一个列表,一个元组做了替换
# 本质还是属于位置实参的依次传入
b是字典,可以转成 key = value
def sum_cul(a, b, c, x, y, z):
return a + b + c + x + y + z
test_dict = {'x': 4, 'y': 5, 'z': 6}
print(sum_cul(1, 2, 3, **test_dict))
# 本来需要传入6个单独的实参,后3个,我们用了一个字典做了替换
# 用字典添加实参,可以理解成关键字实参的方式。需要符合关键字实参的特点,比如在位置实参的右侧
可变长形参
def self_max(*args, **kwargs):
def test(*args, **kwargs):
print(args)
print(kwargs)
test(1, 2, 3, a='apple', b='boy')
# 输出结果
# (1, 2, 3)
# {'a': 'apple', 'b': 'boy'}
# *args表示可以传入任意数量的参数,传入后组合成元组,可以使用for循环遍历
# **kwargs表示可以传入任意数量的相当于字典的参数,也可以使用for循环遍历