函数python中的参数

时间:2011-09-23 17:17:05

标签: python arguments

这是一个关于符号的微妙问题。 我想调用具有特定参数的函数,但无需重新定义它。

例如,在第二个参数min()上具有键函数的key = itemgetter(1)将如下所示:

min_arg2 = lambda p,q = min(p,q, key = itemgetter(1))

我希望把它称为像min( *itemgetter(1) ) ...

这样的东西

有谁知道怎么做?谢谢。

2 个答案:

答案 0 :(得分:10)

您想使用functools.partial()

min_arg2 = functools.partial(min, key=itemgetter(1))

有关文档,请参阅http://docs.python.org/library/functools.html

示例:

>>> import functools
>>> from operator import itemgetter
>>> min_arg2 = functools.partial(min, key=itemgetter(1))
>>> min_arg2(vals)
('b', 0)

答案 1 :(得分:2)

使用functools(如在Duncan's answer中)是一种更好的方法,但是你可以使用lambda expression,你只是没有得到正确的语法:

min_arg2 = lambda p,q: min(p,q, key=itemgetter(1))