位置参数:函数中的位置参数是将参数转换为列表对象,
关键字参数:函数中的关键字参数是将参数转换为字典对象,
- 函数定义时的参数:
默认值形参:
关键字形参:使用*定义,
个数可变的位置形参:使用*定义
个数可变的关键字形参:使用**定义 - 函数调用时的参数:
位置实参:
将序列中的每个元素都转换为位置参数:使用*
关键字实参:
将字典中的每个键值对都转换为关键字实参:使用**
"""
位置参数:函数中的位置参数是将参数转换为列表对象,
关键字参数:函数中的关键字参数是将参数转换为字典对象,
函数定义时的参数:
默认值形参:
关键字形参:使用*定义,
个数可变的位置形参:使用*定义
个数可变的关键字形参:使用**定义
函数调用时的参数:
位置实参:
将序列中的每个元素都转换为位置参数:使用*
关键字实参:
将字典中的每个键值对都转换为关键字实参:使用**
"""
# a,b为函数定义时的形式参数
def fun1(a, b):
print("a:", a)
print("b:", b)
# 函数调用中的位置实参
fun1(1, 2)
# 函数调用时,将列表的每个元素都使用*转换为位置参数(实参)
lst1 = ["list1", "list2"]
fun1(*lst1)
# 函数调用时传递关键字实参
fun1(a=10, b=20)
# 函数调用时,使用**将字典中的每个键值对都转换为关键字实参
dic = {"a": 11, "b": 22}
fun1(**dic)
# a,b在函数定义出,为形参,但此时b有初始值:222,故b为默认值形参
def fun2(a, b=222):
print("a:", a)
print("b:", b)
# args为个数可变的位置形参
def fun3(*args):
print("转换为列表对象的位置参数",args)
# args为个数可变的关键字形参
def fun4(**args):
print("转换为列表对象的关键字参数",args)
fun3(1,2,3,4,5,6,7,8)
fun4(a=123,b=456,c=789)
# 推荐一种常用的函数定义方式
# 前者为个数可变的位置形参(调用时可传入列表对象,以及多个值),
# 后者为个数可变的关键字形参(调用时可传入字典对象,以及多个键值对形式的值)
def fun5(*arg, **args):
pass