美文网首页
Dicts can be used to emulate swi

Dicts can be used to emulate swi

作者: import_hello | 来源:发表于2018-09-19 09:51 被阅读0次
    # Because Python has first-class functions they can
    # be used to emulate switch/case statements
    
    def dispatch_if(operator, x, y):
        if operator == 'add':
            return x + y
        elif operator == 'sub':
            return x - y
        elif operator == 'mul':
            return x * y
        elif operator == 'div':
            return x / y
        else:
            return None
    
    
    def dispatch_dict(operator, x, y):
        return {
            'add': lambda: x + y,
            'sub': lambda: x - y,
            'mul': lambda: x * y,
            'div': lambda: x / y,
        }.get(operator, lambda: None)()
    
    
    >>> dispatch_if('mul', 2, 8)
    16
    
    >>> dispatch_dict('mul', 2, 8)
    16
    
    >>> dispatch_if('unknown', 2, 8)
    None
    
    >>> dispatch_dict('unknown', 2, 8)
    None
    

    相关文章

      网友评论

          本文标题:Dicts can be used to emulate swi

          本文链接:https://www.haomeiwen.com/subject/ikmbnftx.html