Skip to main content
 首页 » 编程设计

python之从任意长的参数列表构建 python 函数

2025年05月04日21exmyth

我正在尝试从单个参数或列表构建 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])