我正在尝试从单个参数或列表构建 python lambda 函数,但不确定使用什么语法来构建 lambda:
def check_classes_filter(*class):
return lambda x: isinstance(x, class) and isinstance(x, class[1]...)
lambda 应该检查 x 是否是传递给函数的任意数量的类(一个或多个)的实例。
有没有一种通用的方法可以在 python 中从任意数量的参数构建函数,也许是一种理解?
请您参考如下方法:
您可以使用 all 遍历您的 classes args。
def check_classes_filter(*classes):
return lambda x: all(isinstance(x, c) for c in classes)
>>> fun = check_classes_filter(str)
>>> fun('hello')
True
>>> fun = check_classes_filter(int, str)
>>> fun('hello')
False
虽然我更喜欢只传入类的列表
def check_classes_filter(classes):
return lambda x: all(isinstance(x, c) for c in classes)
并将函数调用为
check_classes_filter([int, str])
