python-函数的传参

# coding:utf-8
# author:我本善良
# create_time:2021/5/26 20:45
'''
函数的传参:
    1、必传参数
        函数中定义的参数没有默认值,在调用函数时如果不传入则报错
        def add():
            return a+b
        result = add(1,3)
        print(result)

        注:在定义函数的时候,没有默认值且必须在函数执行的时候,转递进去的参数,且顺序与参数顺序相同,就是必传参数

    2、默认参数
        在定义函数的时候,定义的参数含有默认值,通过赋值语句给他是一个默认值

        示例:
            def add(a,b=1):
                参数名、赋值符号,默认值
        注:
            如果默认参数在调用函数的时候,给予了新的值,函数将优先使用后传入的值进行工作

    3、不确定参数-可边参数
        没有固定的参数名和数量(不知道要传的参数名具体是什么)
        示例:
        def add(*args,**kwargs):
        add(1,2,3,name='dewei',age=33)
        对应*args,对应**kwargs

        *args代表:将无参数的值,合并成元组
        **kwargs: 赋值语句形式,给予参数
        test_args_super(a,b)
        # 对应*args和**kwages
        #test_args_super(*a,**b)




    4、参数规则
        def add(a,b=1,*args,**kwargs):
            a:必传参数
            b: 默认参数
            *args: 可变元组参数
            **kwargs:可变字典参数

    注:
        参数的定义从左到右,依次必须是必传参数,默认参数,可变元组参数?,可变字典参数
        函数的参数传递非常灵活
        必传参数与默认参数的传参多样化





'''

def add(a,b,c=3):
        return a + b + c

result = add(1,2)
print(result)

result = add(1,2,6)
print(result)



def test_args(*args,**kwargs):
    print(args,type(args))
    print(kwargs,type(kwargs))

test_args(1,2,3,4,5,6,7,name='Tom',age=33,top=178)
#              元组                      字典



def test_args_super(*args,**kwargs):
    if len(args)>=1:
        print(args[0])

    if 'name' in kwargs:
        print(kwargs['name'])
    else:
        print('Not name')
    print(args,len(args))
    print(kwargs,len(kwargs))

test_args_super(1,name='Tom')


a = ('python','django')
b = {'name':'dewei'}

test_args_super(a,b)
# 对应*args和**kwages
test_args_super(*a,**b)


def sum(a,b=1):
    print(a + b)

#按照顺序传入
sum(1,2)

#传必填参数,不传默认参数
sum(1)

#赋值方式传入
sum(a=1,b=3)

#赋值语句方式传入,不过,打乱顺序
sum(b=2,a=1)

#sum(b=2) #会报错

def test(a,b=1,*args):
    print(a,b,args)

s = (1,2)
test(1,2)
test(1,2,*s)
#test(a=1,b=2,*s) #报错,需将可变参数放在第一位,后面紧跟必传参数,默认参数
test(*s)


def test2(*args,a,b=1): #定义时候:,需将可变参数放在第一位,后面紧跟必传参数,默认参数
    print(a,b,args)

test2(1,2,3,4,5,a=1)
test2(a=1,b=2,*s)


def test3(a=1,b=2,**kwargs):
    print(a,b,kwargs)

test3(1,2,name='Tom')
test3(a=1,b=2,name='dewei')
test3(name='dewei',age=19,a=1,b=3)
d = {'name':'小慧'}
test3(a=1,b=2,**d)
test3(**d,a=1,b=2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值