问题
想弄清楚默认参数,*args,kwargs,如果混用,会怎样,但是报错(不明白它的报错含义)
更加深入的问题是: Python的形参是如何放置的? 传入的时候有什么讲究?或: 是否有一篇文章,深入地从底层机制讲解这方面的问题?
相关代码
以下函数报: TypeError: testfunc() got multiple values for keyword argument 'a'
def testfunc(a=1, b=2, c=3, d=4, *args):
print a
print b
print c
print d
args = (1, 2, 3, 4)
testfunc(a=10, b=20, c=30, d=40, *args)
def test2(a=1, b=2, c=3, d=4, *args, **kwargs):
print a
print b
print c
print d
args = (1, 2, 3, 4)
kwargs = {'a': 1, 'b':2}
test2(a=10, *args, **kwargs)重现
拷贝代码,运行之
报错信息
TypeError: testfunc() got multiple values for keyword argument 'a'
上下文环境
Python2
windows7
尝试解决
貌似很多: https://www.google.co.jp/sear...
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...