在python中,表达式lambda x: x.isFoo()
可以替换为更短的吗?
例如,表达式lambda x: isFoo(x)
只能替换为isFoo
答案 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'