固定参数和可变参数的区别

  1. 定义函数时,参数可以有两种:
    一种是在参数表中写明参数名key的参数,固定了顺序和数量的固定参数:
    def func(key1, key2, key3, …)
    def func(key1, key2=value, …)

    一种是定义时还不知道会有多少参数传入的可变参数:
    def func(*args): #不带key的多个参数
    def func(**kwargs): #key=value形式的多个参数

  2. 示例:
    固定参数:

def func_test(key1, key2, key3=23):
    print("key1=%s, key2=%s, key3=%s" % (key1, key2, key3))
    
func_test('v1', 'v2')
func_test('a', 'b', 768)
func_test(key2='kk', key1='k')

可变参数:

#可随意传入0个或多个无名参数
def func_test2(*args):
    for arg, i in zip(args, range(len(args))):
        print('arg%d=%s' % (i, arg))
        
func_test2('a', 'b', 23, True)
#可随意传入0个或多个带名参数
def func_test3(**kwargs):
    for key, value in kwargs.items():
        print('%s=%s' % (key, value))

func_test3(name='Tom', sep='sofie', age=23)
  1. 调用函数的时候可以传进两种参数:
    一种是没有名字的位置参数:
    func(arg1, arg2, arg3, …)
    会按照前后顺序对应到函数的参数传入

    一种是带key的关键字参数:
    func(key1=arg1, key2=arg2, …)
    由于指定了key可以不按照顺序对应

    注意:如果混用位置参数必须在前,关键字参数 必须在后

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值