函数传参
位置参数
代码展示
def a(b, c):
print(f"第一个参数是:{b},第二个参数是:{c}")
a(20, 30)
a(30, 20)
运行结果展示
第一个参数是:20,第二个参数是:30
第一个参数是:30,第二个参数是:20
总结
通过以上代码展示,第一位置的实参对应着函数第一个位置的形参,同理,第二个位置的实参对应着第二个位置的形参。所以位置参数就是实参传递的顺序按照形参定义的顺序进行传递的传参方式。
关键字参数
代码展示
def a(b, c):
print(f"第一个参数是:{b},第二个参数是:{c}")
a(c=20, b=30)
运行结果展示
第一个参数是:30,第二个参数是:20
总结
通过以上代码展示,函数传参使用 形参名=实参 的形式传参不需要按照形参的顺序传参,python会自动帮我们找到 形参的位置 然后对应上相应的实参。
位置参数与关键字参数混用
代码展示
def a(b, c, e):
print(f"第一个参数是:{b},第二个参数是:{c}, 第三个参数是:{e}")
a(20, e=30, c=40)
运行结果展示
第一个参数是:20,第二个参数是:40, 第三个参数是:30
总结
如果有位置参数混入关键字参数中,那么关键字参数必须写在位置参数后面。否则报错。
默认参数
代码展示
def a(b=777, c=888):
print(f"第一个参数:{b},第二个参数:{c}")
a()
a(10)
a(10, 20)
运行结果展示
第一个参数:777,第二个参数:888
第一个参数:10,第二个参数:888
第一个参数:10,第二个参数:20
总结
通过以上代码展示,定义函数时,我i们给形参一个默认值,在我们调用函数的时候,如果不给有默认值的形参传参,会自动采用默认值,如果给有默认值的形参传参则覆盖默认值。
可变参数
元组参数
元组参数代码展示
# 元组参数 *args
def a(*args):
print(args)
a(123)
a(*"xiangyang")
a(*(1, 3, 5, 7))
a(*[1, 3, 5, 7])
a(*{1, 3, 5, 7})
a(*{"name": "xy", "age": 500})
元组参数代码运行结果展示
(123,)
('x', 'i', 'a', 'n', 'g', 'y', 'a', 'n', 'g')
(1, 3, 5, 7)
(1, 3, 5, 7)
(1, 3, 5, 7)
('name', 'age')
元组参数总结
用法:通过给形参前面添加使参数变成一个元组,所有传递的参数变成元组的元素
注意: args参数名称可以任意命名,但是一般我们叫他 args。
通过以上代码,使用args元组参数作为形参时,无论我们传什么类型的实参最终都会转化为元组。
字典参数
字典参数代码展示
# 字典参数 **kwargs
def d(**kwargs):
print(kwargs)
d(name="jy")
d(name="jy", age=20)
字典参数运行结果展示
{'name': 'jy'}
{'name': 'jy', 'age': 20}
字典参数总结
用法:通过给形参前面添加**使参数变成一个字典,所有传递的参数变成字典的键值对,这里传参要求 键=值 的形式传参。
注意:**kwargs结果类型是字典,传递值是以key=value方式传入
函数参数总结(重点)
函数参数总结:
定义函数参数时的顺序:位置参数,元组参数, 默认参数,字典参数
def a(b, *args, c=777, **kwargs):
print(b, args, c, kwargs)
a(10, *(1, 3, 5, 7), name="jy")