Lambda表达式替换

时间:2014-08-04 13:44:56

标签: python lambda

在python中,表达式lambda x: x.isFoo()可以替换为更短的吗?

例如,表达式lambda x: isFoo(x)只能替换为isFoo

2 个答案:

答案 0 :(得分:3)

是的,您可以使用ClassName.isFoo。例如:

f = lambda x: x.upper()
print f("hello")

f = str.upper
print f("hello")

结果:

HELLO
HELLO

答案 1 :(得分:1)

import operator
foochecker = operator.methodcaller('isFoo')
foochecker(your_object)

可能是要走的路。

电子。克,

import operator
upperify = operator.methodcaller('upper')
upperify("hello")

'HELLO'