Python开关案例允许可选参数

发布于 2021-01-29 16:43:08

我知道python中没有切换用例,可以使用字典代替。但是,如果我想将参数传递给函数zero()而没有参数one()怎么办?我没有发现与此有关的任何问题。

def zero(number):
    return number == "zero"

def one():
    return "one"

def numbers_to_functions_to_strings(argument):
    switcher = {
        0: zero,
        1: one,
        2: lambda: "two",
    }
    # Get the function from switcher dictionary
    func = switcher.get(argument, lambda: "nothing")
    # Execute the function
    return func()

无需将它们分为两种情况的最简单方法是什么?我认为func()需要采用(可选)参数?

关注者
0
被浏览
27
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以使用部分

    from functools import partial
    
    def zero(number):
        return number == "zero"
    
    def one():
        return "one"
    
    def numbers_to_functions_to_strings(argument):
        switcher = {
            0: partial(zero, argument),
            1: one,
            2: lambda: "two",
        }
    
        func = switcher.get(argument, lambda: "nothing")
        return func()
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看