ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

*站在形参和实参的角度进行传输

2019-08-14 09:51:25  阅读:171  来源: 互联网

标签:name 形参 传输 艾克 l2 func print 实参 你好


首先时站在形参的角度进行动态传输:*会将实参传输过来的参数进行聚合,返回一个元组

def func(*args):
    return args
l = ('a','b','c''d'),('aa','bb','cc''dd')
l1 = [1,2,3,4,5,[11,22,33]]
l2 = ['adsad','艾克',[1,2,3,4],{'s':'alex','name':'aike'}]
print(func(l))
print(func(l1))
print(func(l2))

#打印
((('a', 'b', 'cd'), ('aa', 'bb', 'ccdd')),)
([1, 2, 3, 4, 5, [11, 22, 33]],)
(['adsad', '艾克', [1, 2, 3, 4], {'s': 'alex', 'name': 'aike'}],)

而站在实参的角度进行动态传输:起到的作用是打散,他会将传输的参数传给形参时按顺序打散,也就是迭代,int类型不可迭代会报错

def func(*args):
    return  args
l = ['adsad','艾克',[1,2,3,4],{'s':'alex','name':'aike'}]
l1 = 'adsad'
l2 = [1,2,3,4]
l3 = {'s':'alex','name':'aike'}
l4 = '12121'
print(func(*l))
print(func(*l1))
print(func(*l2))
print(func(*l3))
print(func(*l4))

#打印
('adsad', '艾克', [1, 2, 3, 4], {'s': 'alex', 'name': 'aike'})
('a', 'd', 's', 'a', 'd')
(1, 2, 3, 4)
('s', 'name')
('1', '2', '1', '2', '1')

 

上面时*args,那么**kwargs会是怎么样呢

def func(**kwargs):
    return kwargs
l = {'a':111,'b':222,'c':333}
l1 = {'a':'你好函数'}
# l2 = ('a','b','c')  #报错
print(func(**l))
print(func(**{'a':'你好函数','b':'你好艾克','c':'你好李'}))
print(func(**l1))
# print(func(l2))
# print(func(**[a = '你好,函数',c = '你好,艾克',i = '你好,李']))#报错
# print(func(l)) #报错


#打印
{'a': 111, 'b': 222, 'c': 333}
{'a': '你好函数', 'b': '你好艾克', 'c': '你好李'}
{'a': '你好函数'}

 

**即可。由于**kwargs的返回值是字典,所以在实参的角度进行动态传输必须以字典形式传入参数,否则会报错

 

标签:name,形参,传输,艾克,l2,func,print,实参,你好
来源: https://www.cnblogs.com/aizhinong/p/11350024.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有