我想要类似的东西,这样我就可以从一个引用访问值对的任何一部分。香草的版本:#!/usr/bin/env python3

from enum import IntEnum

class EnumDemo(IntEnum):

ENUM_ZERO = 0

ENUM_ONE = 1

ENUM_TWO = 2

ENUM_THREE = 3

ENUM_INVALID = 4

#endclass.

print('Passes')

print('1) %d'%(EnumDemo['ENUM_TWO']))

print('2) %s'%(EnumDemo['ENUM_TWO']))

print('3) %s'%(EnumDemo.ENUM_TWO.name))

print('4) %d'%(EnumDemo.ENUM_TWO))

print()

print('Fails')

print('1) %d'%(EnumDemo.ENUM_TWOa))

失败将按预期引发异常。

更强大的版本:#!/usr/bin/env python3

class EnumDemo():

enumeration = (

'ENUM_ZERO', # 0.

'ENUM_ONE', # 1.

'ENUM_TWO', # 2.

'ENUM_THREE', # 3.

'ENUM_INVALID' # 4.

)

def name(self, val):

try:

name = self.enumeration[val]

except IndexError:

# Always return last tuple.

name = self.enumeration[len(self.enumeration) - 1]

return name

def number(self, val):

try:

index = self.enumeration.index(val)

except (TypeError, ValueError):

# Always return last tuple.

index = (len(self.enumeration) - 1)

return index

#endclass.

print('Passes')

print('1) %d'%(EnumDemo().number('ENUM_TWO')))

print('2) %s'%(EnumDemo().number('ENUM_TWO')))

print('3) %s'%(EnumDemo().name(1)))

print('4) %s'%(EnumDemo().enumeration[1]))

print()

print('Fails')

print('1) %d'%(EnumDemo().number('ENUM_THREEa')))

print('2) %s'%(EnumDemo().number('ENUM_THREEa')))

print('3) %s'%(EnumDemo().name(11)))

print('4) %s'%(EnumDemo().enumeration[-1]))

如果未正确使用,这将避免创建异常,而是返回故障指示。一个更像python的方法是返回“None”,但我的特定应用程序直接使用文本。

python enumeration_如何在python中将int转换为Enum?相关推荐

  1. 如何在Java中将String转换为int?

    如何在Java中将String转换为int ? 我的字符串仅包含数字,我想返回它代表的数字. 例如,给定字符串"1234" ,结果应为数字1234 . #1楼 好吧,要考虑的一个非 ...

  2. 如何在Java中将String转换为int

    在本教程中,我们将看到将Java中的String转换为int(或Integer)的各种方法. 您可以使用以下任何一种方式: –使用Integer.parseInt(string) –使用Integer ...

  3. 如何在Java中将double转换为int?

    在本文中,我们将看到如何将double转换为int. 在Java编程中,您将有一个double原语值(例如82.14),但是要执行进一步的操作,您需要一个int值(例如82),所以让我们看看如何在Ja ...

  4. java中long如何使用_如何在Java中将long转换为int?

    问题 如何在Java中将long转换为int? #1 热门回答(218 赞) 简单类型转换应该这样做: long l = 100000; int i = (int) l; 但请注意,大数(通常大于21 ...

  5. linux shell转换成时间,如何在Bash中将时间戳转换为日期?

    如何在Bash中将时间戳转换为日期? 我需要一个将Unix时间戳转换为日期的shell命令或脚本. 输入可以来自第一个参数或来自stdin,允许以下使用模式: ts2date 1267619929 和 ...

  6. 如何在JavaScript中将十进制转换为十六进制

    如何在JavaScript中将十进制值转换为等效的十六进制值? #1楼 如果要将数字转换为RGBA颜色值的十六进制表示形式,我发现这是以下几个技巧中最有用的组合: function toHexStri ...

  7. python boolean_如何在Python中使用boolean’和’

    本问题已经有最佳答案,请猛点这里访问. 在c中,我们可以使用&&(布尔和),如下所示: int i = 5; int ii = 10; if(i == 5 && ii ...

  8. python psycopg2_如何在Python上用“pip”安装psycopg2?

    如何在Python上用"pip"安装psycopg2? 我正在使用virtualenv,我需要安装"psycopg2". 我做了以下事情:pip install ...

  9. chatgpt赋能python:如何在Python中保存文件到指定文件夹

    如何在Python中保存文件到指定文件夹 如果您正在使用Python编写应用程序或脚本,您可能需要将输出保存到特定的文件夹中. 本文将介绍如何在Python中保存文件到指定文件夹. 使用os模块创建文 ...

最新文章

  1. 中国AI专利申请量超美国,百度居国内首位
  2. C++const修饰成员函数
  3. JS设计模式五:职责链模式
  4. java文件名判断练习
  5. 简单粗暴 我再送一波教程资料,Vue、大数据、AI都有
  6. cad 打开硬件加速卡_CAD卡顿?电脑带不动?几个简单实用的方法,解决CAD运行卡顿问题...
  7. python 帮助 help
  8. 39个SEO经典案例
  9. Matlab实现图像识别(十)
  10. 解决Namecheap域名转入确认邮件重发及邮件收不到
  11. android:viewpager实现图片循环滑动+索引点击事件
  12. 程序员转行可以做什么?
  13. hdmi怎么支持2k分辨率_官方确认!PS5将不支持原生2K分辨率,双11次世代设备升级注意排雷...
  14. JS新建文件到本地(不弹出保存文件框)
  15. Android系统自定义关机充电图标
  16. 双(三氟甲基磺酰基)酰亚胺钠 cas91742-21-1白色-类白色晶体-粉末 分子量:303.1358892
  17. 贩妖记 第六十六章,水底大鱼
  18. 【经营智慧】004.做一个善于发挥自己才智的人
  19. 向U盘传输文件时,出现对于目标文件系统,文件* * * * * * * 过大
  20. 每日新闻 | 百度推出爱番番CRM开放平台 扶持入驻CRM服务商

热门文章

  1. 以下不属于计算机安全术语,基础知识(D).doc
  2. 并行计算机架构_计算机科学组织| 并行处理
  3. duration java_Java Duration类| 带示例的getUnits()方法
  4. 图解TCP三次握手和四次挥手!(简单易懂)
  5. Express框架使用以及数据库公共操作类整理(Win7下的NodeJs)
  6. 图论模型迪杰斯特拉算法
  7. Linux Ubuntu 安装编译Opencv 3.4.3 C++开发环境
  8. ElasticSearch可视化工具Dejavu安装使用
  9. android 切换字体崩溃,androidx - 在Android 10 / Android Q上使用捆绑的ttf字体时崩溃 - 堆栈内存溢出...
  10. 调整 Windows系统参数网址