函数的参数传递

传递方式:

    位置传参

    序列传参

    关键字传参

    字典关键字传参

位置传参:

    实际参数的对应关系和形式参数的对应关系是按位置依次对应

    示例:

        def mymin(a, b, c):
            pass

        mymin(1, 2, 3)          #1, 2, 3位置对应关系传给a, b, c

    说明:

        实际参数和形式参数通过位置进行传递和匹配

        实际参数和形式参数的个必须相同

序列传参:

    序列传参是指在函数调用过程中,用*将序列拆解后按位置进行传递的传参方式

    说明:

        序列传参时,序列拆解的位置将与形参一一对应

        序列的位置信息对应相应的参数位置

    示例:

   	def myfun(a, b, c):
		print(a)
		print(b)
 		print(c)


	s1 = [1, 2, 3]
	s2 = (4, 5, 6)
	s3 = 'abc'
	#等同于myfun(s1[0], s1[1], s1[2])
	myfun(*s1)
	myfun(*s2)
	myfun(*s3)

关键字传参:

    是指传参时,按着形参名称给形参赋值

    实参和形参按名称进行匹配

    示例:

        def myfun(a, b, c):
            pass

        myfun(b = 1, a = 2, c = 3)      #2-->a  1-->b  3-->c
        myfun(c = 10, b = 5, a = 1)     #1-->a  5-->b  10-->c

    说明:

        实参和形参按着形参名进行匹配,可以不按位置进行匹配

字典关键字传参:

    是指实参为字典,将字典用 ** 拆解后进行关键字传参的方式

    说明:

        字典的键名和形参名一致

        字典的键名必须为字符串(且为标识符的命名方式)

        字典的键名要在形参中存在

    示例:

        def myfun(a, b, c):
	 		print(a, b, c)


    	d1 = {'c': 10, 'b': 20, 'a': 30}
   		 myfun(**d1)

函数的综合传参:

    函数的传参方式,在能确定形参能唯一匹配到相应实参的情况下可以任意组合

    函数的位置传参要先于关键字传参

    说明:

        位置传参和序列传参可以混合使用且可以顺序颠倒

        如:
            myfun(100, *[200, 300])
            myfun(*[100, 200], 300)
            myfun(*[100], 200, *[300])

        函数的关键字传参和字典关键字传参可以混合使用且顺序可以颠倒

        如:

            myfun(c=300, **{'b': 200, 'a': 100})
            myfun(**{'b': 200, 'c': 300}, a=100)

        位置传参和关键字传参可以混合使用,但位置传参要先于关键字传参:

        如:

            myfun(100, c=300, b=200)
            myfun(10, b=20, **{'c': 30})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值