是否有更简洁的方式来编写它?当局部变量名称与函数参数名称相同时,将关键字参数传递给函数
f(a=a, b=b, c=c, d=d, e=e)
背景:我有太多的争论
f(a, b, c, d, e):
pass
功能我在我的节目,我有一个被命名为函数的参数完全相同局部变量。
a, b, c, d, e = range(5)
我想用关键字参数调用函数。由于变量名称相同,这就是调用的外观。
g = f(a=a, b=b, c=c, d=d, e=e) # this can get very long
当然,我可以这样
g = f(a, b, c, d, e)
但a
,b
,c
,d
,e
使用位置,而不是关键字的变量只是名字传递aruguments在这个例子中,它很容易看到正确的顺序。但不幸的是,我的程序中的变量名称更复杂,并且没有容易辨别的自然顺序。所以我真的很喜欢通过关键字来传递它们以避免任何错误。
小问题:不应该是'本地人? – senderle 2011-05-02 19:22:02
'lambda'有它自己的作用域,所以如果它在lambda内被使用(但它们将在'globals()')中,那么它的包含作用域的局部变量不在'locals()'中。 – 2011-05-02 19:24:22
Wunderbar!这正是我所期待的。谢谢!我同意@senderle,我可以使用'locals()'而不是'globals()'。 – 2011-05-02 19:24:43