"""
============================
Author:柠檬班-木森
Time:2020/2/20   20:39
E-mail:3247119728@qq.com
Company:湖南零檬信息技术有限公司
============================
"""
""""
函数的参数：定义在函数后面的括号中
    定义的参数叫形参
    调用函数的时候传入的数据叫实参


函数参数的分类：

实参分类：
1、位置传参：通过位置按顺序传递
2、关键字传参：通过参数名指定参数进行传递


形参的分类：
1、必备参数/必需参数:定义几个就要传几个
2、默认参数（缺省参数）:可传可不传，不传的情况下使用默认值.
3、不定长参数
    *args：接收0个或多个位置参数
    **kwargs：接收0个或多个关键字参数
"""


# def add_number(a, b):
#     print("a:", a)
#     print("b:", b)
#     print("a+b的结果:", a + b)
#     return a + b


# 位置传参/位置参数
# res = add_number(11, 22)
# 关键字传参/关键字参数
# add_number(b=100, a=99)

# -------------------注意点-----------------
# def func3(a, b, c):
#     print("a:", a)
#     print("b:", b)
#     print("c:", c)
#
#
# func3(11, c=100, b=99)
# 注意点：如果同时使用关键字和位置参数，位置参数写前面，关键字参数写后面


# ---------------------------------形参的分类--------------------
# 必备参数
# def func4(a, b, c):
#     print("a:", a)
#     print("b:", b)
#     print("c:", c)
#
# func4("89", [111, 22], {"a": 1})

# 默认参数
# def func4(a, b, c=None):
#     print("a:", a)
#     print("b:", b)
#     print("c:", c)
# func4(111, 22)

# 不定长参数:
def func4(a, b, c, *args, **kwargs):
    print("a:", a)
    print("b:", b)
    print("c:", c)
    print(args)
    print(kwargs)


# func4(11, 22, 33, 1, 1)
# func4(a=1, b=2, c=3, d=4, f=5)
print()
