Python 2.7 将嵌套函数指定给带参数的变量

Python 2.7 将嵌套函数指定给带参数的变量,python-2.7,function,Python 2.7,Function,免责声明:我的标题可能不准确,因为我想完成,但我可以更新,如果有人可以纠正我的术语 我有两个函数,每个函数都有各自的用途,可以单独使用,但偶尔我会将这两个函数结合起来,一次执行两个操作并返回一个结果,为此,我会指定一个变量名 我知道我可以创建第三个函数,它基本上实现了我想要的功能,因为它非常简单。。虽然找到一种方法来做这件事对我来说有点挑战 def str2bool(string): return string.lower() in ("yes", "true", "t", "1")

免责声明:我的标题可能不准确,因为我想完成,但我可以更新,如果有人可以纠正我的术语

我有两个函数,每个函数都有各自的用途,可以单独使用,但偶尔我会将这两个函数结合起来,一次执行两个操作并返回一个结果,为此,我会指定一个变量名

我知道我可以创建第三个函数,它基本上实现了我想要的功能,因为它非常简单。。虽然找到一种方法来做这件事对我来说有点挑战

def str2bool(string):
    return string.lower() in ("yes", "true", "t", "1")

def get_setting(string):
    if string == 'cat':
        return 'yes'
    else:
        return 'no'

VALID_BOOL = str2bool(get_setting)

print VALID_BOOL('cat')
所以基本上我想把这两个函数的组合分配给一个变量,我可以调用这个变量并传入字符串参数进行计算

在我的真实代码中,get_setting()将检索用户设置并返回值,然后我将测试该值并将其作为布尔值返回


我知道我可以创建第三个函数来获取值并进行快速测试。。但这更多的是为了学习,看看是否能像我尝试的那样做到。。到目前为止,我分配和调用的不同变体都不起作用,这是可能的还是会变得太复杂?

使用lambda很容易,但我不知道它是否正是您想要的

例如:

f = lambda astring : str2bool(get_setting(astring))
产出:

>>> f('cat')
True

您可以像
str2bool(获取设置(有效字符串))
那样组合它们。如果你想用一个名字来链接两个函数,你需要第三个函数(如果你不想
def
it,不管出于什么原因,它可能只是一个lambda)。很抱歉,我的示例代码中的函数名有一些拼写错误,我已经更新了damn。。我可以发誓我用lambda试过了!一定是把语法弄乱了,这很好用,谢谢!很高兴我能帮忙!