Python 函数代替 switch/case 语句?

简介: Python 函数代替 switch/case 语句?

因为Python有一流的函数,

所以它们可以用来模拟 switch/case 语句。


纳尼 ?用函数还可以代替  switch/case 语句, 什么鬼操纵, 其实是可以的,大家仔细想一想  switch/case 相当于一个判断语句,我们可以通过 returnambda 来实现,而且效率更高。


先看普通版:

    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

      一个字来概括 “高大上”!但是会有些人问 “这样写很麻烦啊,直接用判断语句岂不是简单方便吗”,在这里忽略了个问题,虽然直接使用判断语句很方便简单,但是执行效率低下,如果把它封装一个函数,这样执行起来效率高,进一步讲,哇 这哥们代码写的有水平。


      一些更高级的小技巧,待续。。。

      相关文章
      |
      2天前
      |
      Java C# 开发者
      Python 中的类型注解是一种用于描述变量、函数参数和返回值预期类型的机制
      Python的类型注解提升代码可读性和可维护性,虽非强制,但利于静态类型检查(如Mypy)。包括:变量注解、函数参数和返回值注解,使用内置或`typing`模块的复杂类型,自定义类型注解,以及泛型模拟。类型注解可在变量声明、函数定义和注释中使用,帮助避免类型错误,提高开发效率。
      15 6
      |
      4天前
      |
      存储 Python
      【Python 基础】解释reduce函数的工作原理
      【5月更文挑战第6天】【Python 基础】解释reduce函数的工作原理
      |
      4天前
      |
      Python
      【Python 基础】解释map函数的工作原理
      【5月更文挑战第6天】【Python 基础】解释map函数的工作原理
      |
      4天前
      |
      索引 Python
      【Python 基础】解释Range函数
      【5月更文挑战第6天】【Python 基础】解释Range函数
      |
      4天前
      |
      Python
      Python中的匿名函数,即lambda函数
      【5月更文挑战第6天】Python中的匿名函数,即lambda函数,用于简洁地定义小型函数,无需`def`关键字。示例:`double = lambda x: x * 2`,可将5加倍。常用于排序(自定义比较)、映射(如求平方)和过滤列表,以及作回调函数。然而,它们不适用于多行代码或复杂逻辑,此时需用常规函数。
      4 0
      |
      8天前
      |
      NoSQL Serverless Python
      在Python的Pandas中,可以通过直接赋值或使用apply函数在DataFrame添加新列。
      在Python的Pandas中,可以通过直接赋值或使用apply函数在DataFrame添加新列。方法一是直接赋值,如`df['C'] = 0`,创建新列C并初始化为0。方法二是应用函数,例如定义`add_column`函数计算A列和B列之和,然后使用`df.apply(add_column, axis=1)`,使C列存储每行A、B列的和。
      37 0
      |
      10天前
      |
      机器学习/深度学习 数据可视化 TensorFlow
      Python用线性回归和TensorFlow非线性概率神经网络不同激活函数分析可视化
      Python用线性回归和TensorFlow非线性概率神经网络不同激活函数分析可视化
      |
      12天前
      |
      Python 容器
      python内置函数、数学模块、随机模块(二)
      python内置函数、数学模块、随机模块(二)
      |
      12天前
      |
      索引 Python
      python内置函数、数学模块、随机模块(一)
      python内置函数、数学模块、随机模块(一)
      |
      12天前
      |
      Python
      深入理解python的闭包函数
      深入理解python的闭包函数