python系统提供构造函数传入参数_python *args **kwargs,传入不固定的参数给函数,或者传入很多的内容给函数,常用在构造函数中。...

'''例1:展示*args的用法,传入多个参数,不进行预先定义。

本例传入了3个参数。没有预先定义。在函数内自动生成元组()'''

def q1(*args):print('例1')print(args)print(type(args))print(args[0])

t1= 123t2= 234t3= 345q1(t1, t2, t3)print('-----------------')'''例2,和例1一样,但是传入字符串,元组,列表,都会在函数内生成元组()

注意引入参数时要有*号,

没有星号,函数把你传入的参数列表(元组,字符串)当作一个参数来处理。

有星号时,函数把你传入的参数列表(元组,字符串)当作多个参数来处理,在函数内生成元组()

如最后一个调用q2(t3)'''

def q2(*args):print('例2')print(args)print(type(args))print(args[0])

t1= 123,234,345q2(*t1)

t2= (234,345,456)

q2(*t2)

t3=[345,456,567]

q2(*t3)

q2(t3)print('-----------------')'''例3,本例展示使用**kwargs,传入字典,函数内同样还是字典。'''

def q3(**kwargs):print('例3')print(kwargs)print(type(kwargs))print(kwargs['name1'])

di={'name1': 'jack','name2': 'rose',

}

q3(**di)print('-----------------')'''例4:本例展示,函数定义时,可以同时使用*args,**kwargs来定义函数。

但是引用时,可以分开引用,只引用*args,或只引用**kwargs,暂时屏蔽函数内对元组和字典的使用,避免报错。'''

def q4(*args,**kwargs):print('例4')print(args)#print(args[0])

print(kwargs)#print(kwargs.get('name1'))

t1 = 123,234,345di={'name1': 'jack','name2': 'rose',

}

q4(*t1)print('---')

q4(**di)print('-----------------')'''例5,本例展示同时定义*args,**kwargs,并且同时使用。'''

def q5(*args,**kwargs):print('例5')print(args)print(args[0])print(kwargs)print(kwargs.get('name1'))

t1= 123,234,345di={'name1': 'jack','name2': 'rose',

}

q5(*t1,**di)print('-----------------')'''例6,本例展示把*args,作为多余的参数传入函数,也是看代码经常看到的。'''

def q6(t1,t2,*args):print('例6')print(t1)print(t2)print(args)print(args[0])

t1= 123,234,345q6('t123','t234',*t1)print('-----------------')'''例7,本例展示把**kwargs,作为多余的参数传入函数,也是看代码经常看到的。'''

def q7(k1,k2,**kwargs):print('例7')print(k1)print(k2)print(kwargs)print(kwargs.get('name1'))passdi={'name1': 'jack','name2': 'rose',

}

q7(k1='t123',k2='t234',**di)print('-----------------')'''例8,本例展示把*args,**kwargs共同使用,作为多余的参数传入函数,也是看代码经常看到的。

除函数定义的k1,k2,又在引用时,加入了 't345',k3=1,

结果

t123 (k1)

t234 (k2)

('t345', 123, 234, 345) (args)

{'k3': 1, 'k4': 2, 'name1': 'jack', 'name2': 'rose'} (kwargs)

jack kwargs['name1']'''

def q8(k1,k2,*args,**kwargs):print('例8')print(k1)print(k2)print(args)print(kwargs)print(kwargs.get('name1'))passt1= 123,234,345di={'name1': 'jack','name2': 'rose',

}

q8('t123','t234','t345',k3=1,k4=2,*t1,**di)print('-----------------')

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值