跳转到主要内容

Python的基于枚举的开关实现。

项目描述

Python的枚举开关

这是尝试为Python创建一种可靠、无bug的开关实现,类似于其他语言中的开关。

工作原理

假设你有一个枚举,如下所示

class Color(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3

并且你想实现基于类型为Color的值的逻辑。你可以通过从Switch类继承来实现。语法应该是显而易见的,但是

  • 从Switch继承
  • 为枚举的每个值实现一个方法
  • 如果你没有实现所有这些:添加一个default方法。
  • 如果你没有处理任何枚举值:实例化你的类时将引发异常。

然后

  • 实例化你的类
  • 将其作为函数调用,并传递来自枚举的值
  • 将执行相应的函数,并返回其返回值
from enum_switch import Switch

class MySwitch(Switch):
    def RED(self):
        return "Apple"

    def GREEN(self):
        return "Kiwi"

    def BLUE(self):
        return "Sky"

switch = MySwitch()

print(switch(Color.RED))

Apple

就是这样。

一些额外的注意事项

  • 传递非正确枚举类型的值将引发ValueError
  • default是可选的

希望有人觉得它有用!

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

enum_switch-0.1.0.tar.gz (2.2 kB 查看哈希值)

上传时间 源码

构建分发版

enum_switch-0.1.0-py3-none-any.whl (2.1 kB 查看哈希值)

上传时间 Python 3

支持者