小尹学python

导航

Python:函数的参数

#  函数的参数

#  1、形参
def fuc_01(a, b, c):  # a\b\c均为形参
    print(a + b + c)

fuc_01(1, 2, 3)  # 1\2\3均为形实参,并按位置传参,形参与实参数量要一致
fuc_01(a=2, c=3, b=4)
fuc_01(1, 3, c=4)

# fuc(a=1,3,c=2),这个会报错,要先位置传参,再关键字传参


#  2、默认参数
def fuc_02(a, b, c=3):
    print(a + b + c)

fuc_02(3, 4)
fuc_02(4, 5, 6)  # 默认参数可变

#  3、动态参数,*args必须放在**kwargs前面
def fuc_03(*args):  # 只能按位置传参
    print(args)  # 默认变成元组

fuc_03()  # 输出:()
fuc_03(22)  # 输出:(22,)
fuc_03(22, 33)  # 输出:(22, 33)
fuc_03(1, 2, 3)  # 输出:(1, 2, 3)

def fuc_04(**kwargs):  # 只能按关键字传参
    print(kwargs)

fuc_04(a='秦始皇', b=3333, c='打钱')  # 输出:{'a': '秦始皇', 'b': 3333, 'c': '打钱'}
fuc_04()  # 输出{}

def fuc_05(*args, **kwargs):
    print(args, kwargs)

fuc_05(88, 99, a='秦始皇', b=3333, c='打钱')  # 输出:(88, 99) {'a': '秦始皇', 'b': 3333, 'c': '打钱'}
fuc_05(99, 88)  # 输出:(99, 88) {}
fuc_05(a='秦始皇', b=3333)  # 输出:() {'a': '秦始皇', 'b': 3333}
# fuc_05(a='秦始皇',88,99,b=3333)  # 输出:报错
# 参数和动态参数混合一起,参数必须放在动态参数前面
# 默认参数和动态参数放一起,默认参数需放在**kwargs前

#  形参固定,实参用*和**
def fuc_05(m1,n1):
    print(m1,n1)
fuc_05(*[1,2])  # 输出:1 2
fuc_05(**{'m1':3,'n1':4})  # 输出:3 4

#  形参用*和**,实参也用*和**
def fuc_06(*args,**kwargs):
    print(args,kwargs)
fuc_06([1,2,3],{'n2':5,'m2':6})  # 输出:([1, 2, 3], {'n2': 5, 'm2': 6}) {}
fuc_06(*[1,2,3],**{'n2':5,'m2':6})  # 输出:(1, 2, 3) {'n2': 5, 'm2': 6}

posted on 2021-10-12 14:55  小尹学python  阅读(41)  评论(0编辑  收藏  举报