具有数字名称的枚举

2024-03-28

以下内容在 Python 中不起作用:

class MemorySize(int, Enum):
    "1024" = 1024
    "2048" = 2048

那么,在不必用文字输入整个数字并确保输入安全的情况下,最接近的方法是什么?


From docs https://docs.python.org/3/library/enum.html#creating-an-enum:

枚举是一组绑定到唯一常量值的符号名称(成员)。在枚举中,可以通过身份比较成员,并且可以迭代枚举本身。

所以,枚举成员应该是symbolic names,而不是字符串文字。

如果您想使用数字作为名称,您可以在其前面添加前缀_ or m_,因为私有属性以下划线开头 https://stackoverflow.com/questions/1301346/what-is-the-meaning-of-single-and-double-underscore-before-an-object-name

另外,您可以使用IntEnum https://docs.python.org/3/library/enum.html#enum.IntEnum对于整数枚举。

from enum import IntEnum


class MemorySize(IntEnum):
    m_1024 = 1024
    m_2048 = 2048

print(MemorySize.m_1024.value)

Output

1024

另外,这里可以省略逗号"1024" = 1024,.

实际上1024,是一个只有一个元素的元组(1024, ) and 1024只是 int。我只是很好奇,为什么你可以将 tuple 和 int 传递给 Enum 属性。

我发现它的价值IntEnum属性传递给int构造函数。在此之前,它将 args 转换为元组EnumMeta.__new__

if not isinstance(value, tuple):
    args = (value, )
else:
    args = value

您可以传递到int构造函数的第二个参数,基数: 因为int("ff", 16) == 255。或者只使用字符串常量而不是 int 因为int("123") == 123.

所以,你可以使用IntEnum像这样的任何数字系统的值(尽管我认为这不是在实践中使用它的好方法)

class WeiredEnum(IntEnum):
    m_255 = "ff", 16
    m_256 = "256"

print(WeiredEnum.m_255.value)
print(type(WeiredEnum.m_256.value))
> 255
> <class 'int'>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有数字名称的枚举 的相关文章

  • 安装tensorflow的正确命令

    当尝试在 Anaconda 上安装 Tensorflow 时 我尝试了两种类型的命令 conda install tensorflow gpu工作得很好 然而 当尝试conda install c anaconda tensorflow g
  • 如何更改默认的Python版本?

    我已经在我的 Mac 上安装了 Python 3 2 我跑完之后 Applications Python 3 2 Update Shell Profile command 当我输入时 这很令人困惑Python V在终端它说Python 2
  • 为什么 pandas 在简单的数学运算上比 numpy 更快?

    最近 我观察到 pandas 的乘法速度更快 我在下面的例子中向您展示了这一点 如此简单的操作怎么可能做到这一点 这怎么可能呢 pandas 数据帧中的底层数据容器是 numpy 数组 测量 我使用形状为 10k 10k 的数组 数据框 i
  • 区分大小写的实体识别

    我的关键字全部以小写形式存储 例如 折扣耐克鞋 我正在尝试对其执行实体提取 我遇到的问题是 spaCy 在 NER 方面似乎区分大小写 请注意 我不认为这是 spaCy 特有的 当我跑步时 doc nlp u i love nike sho
  • 在推送到容器注册表之前如何对构建的映像运行测试?

    从 gitlab 文档中可以看出如何使用 kaniko 创建 docker 镜像 build stage build image name gcr io kaniko project executor debug entrypoint sc
  • Python设置1和True的解释

    在 IPython 3 交互式 shell 中 In 53 set2 1 2 True hello In 54 len set2 Out 54 3 In 55 set2 Out 55 hello True 2 是因为 1 和 True 得到
  • 如何检索分配给 Django 中的组的所有权限

    我正在执行一项任务来检索分配给 Django 中的组的一组权限 我可以使用以下代码获取创建的组 但无法使用它来获取分配给它们的权限 from django contrib auth models import Group Permissio
  • sy.sympify(str(表达式)) 不等于表达式

    据我了解 str将 SymPy 表达式转换为字符串并sympify将字符串转换为 SymPy 表达式 因此 我希望以下内容成立 对于合理的表达 gt gt gt sy sympify str expr expr True 我尝试过这个 确实
  • 计算熊猫数据帧几个月的总和

    我有一个 pandas 数据框 如下所示 ID Year R1 R1 f KAR1 20201001 1 5 KAR1 20201101 2 6 KAR1 20201201 3 7 KAR1 20210101 4 8 KAR1 202102
  • Python sys.modules 包含尚未导入的模块

    我试图了解加载的模块与导入的模块之间的区别 如果有的话 我正在使用 Python 2 7 3 并且只是从命令行运行 Python 如果我执行 import sys sys modules 我得到一个列表 其中包括os 例如 文档说sys m
  • 打印一份拥有多个家庭的人员名单,每个家庭都有多个电话号码

    我有一类 Person 它可以有多个 Home 每个 Home 都有一个或多个电话号码 我已经定义了类 但现在我正在尝试创建一个视图 其中列出每个人的所有家庭以及每个家庭地址的所有电话号码 类似于 john smith 123 fake s
  • 预测测试图像时出现错误 - 无法重塑大小数组

    我正在尝试使用 TensorFlow 和 Keras 在 Python 中进行图像识别 并且我已经关注了下面的博客 https stackabuse com image recognition in python with tensorfl
  • 我可以在 if 语句中使用“as”机制吗

    是否可以使用as in if类似的声明with我们使用的 例如 with open tmp foo r as ofile do something with ofile 这是我的代码 def my list rtrn lst True if
  • 如何全局安装 Python(开发)依赖项,以便我不必在每个 venv 中重新安装它们?

    我希望在为每个项目创建的每个 venv 虚拟环境 中都可以使用一些 Python 依赖项 例如 black flake8 和 pytest 这可能吗 如果可以 如何实现 我想安装这三个once在我的主要 Python 安装下 我必须在启动新
  • Python 或 C 语言中的 Matlab / Octave bwdist()

    有谁知道 Matlab Octave bwdist 函数的 Python 替代品 此函数返回给定矩阵的每个单元格到最近的非零单元格的欧几里得距离 我看到了一个 Octave C 实现 一个纯 Matlab 实现 我想知道是否有人必须用 AN
  • 如何在 Python 中跟踪日志文件?

    我想在 Python 中提供 tail F 或类似内容的输出 而无需阻塞或锁定 我找到了一些非常旧的代码来做到这一点here http code activestate com recipes 436477 filetailpy 但我认为现
  • 更改用作函数全局作用域的字典

    我想做一个 purePython 的装饰器 其中一部分是能够有选择地禁止访问函数的全局范围 有没有一种方法可以以编程方式更改哪个字典事物充当函数的全局 外部作用域 因此 例如在下面我希望能够拦截对f in h并抛出错误 但我想允许访问g因为
  • 重定向 python 交互式帮助()

    我正在为使用 Qt 的应用程序开发交互式 python shell 但是我似乎无法获得重定向的交互式帮助 我的 python 代码中有这个 class OutputCatcher def init self self data def wr
  • 如何在supervisord中设置组?

    因此 我正在设置 Supervisord 并尝试控制多个进程 并且一切正常 现在我想设置一个组 以便我可以启动 停止不同的进程集 而不是全部或全无 这是我的配置文件的片段 group tapjoy programs tapjoy game1
  • 当训练和测试的特征数量不同时,如何处理生产环境中的One-Hot Encoding?

    在做某些实验时 我们通常在 70 上进行训练 在 33 上进行测试 但是 当您的模型投入生产时会发生什么 可能会发生以下情况 训练集 Ser Type Of Car 1 Hatchback 2 Sedan 3 Coupe 4 SUV 经过

随机推荐

  • 如何在 R 中将度分秒转换为十进制?

    我有这个数据框 Lat Long 59 44 50 151 45 11 59 49 28 154 52 56 59 46 42 150 45 15 如何将其转换为十进制列 纬度的单位为 dd mm ss 长的单位为 ddd mm ss 我在
  • 如何使用 JSONata 将嵌套对象展平为单深度对象?

    我是 JSONata 新手 在创建展平函数时遇到一些麻烦 我想把这个输入 user key value map CreatedDate 123424 Department Name XYZ 进入这个 user key value map C
  • 在 OpenCV 中使用 FindExtrinsicCameraParams2

    我在对象坐标和相应的图像点 在图像平面上 中有 4 个共面点 我想计算物平面相对于相机的相对平移和旋转 FindExtrinsicCameraParams2 应该是解决方案 但我在使用它时遇到了麻烦 编译时不断出现错误 有人在OpenCV中
  • 显示 WordPress 中最新的搜索词

    有没有办法显示我网站上最近完成的搜索词 我想显示访问者最近执行的 3 5 个搜索词 以便鼓励其他用户也搜索某些内容 Edit 在这种情况下 如果有人搜索新内容 刷新页面可能会显示一组新的搜索词 我确信至少有一些插件可以帮助您解决此问题 我会
  • ngx-bootstrap 日期选择器不起作用

    我正在学习 Angular2 和 Bootstrap4 我的公司使用以下网站 http valor software com ngx bootstrap datepicker http valor software com ngx boot
  • Blazor - Web 程序集加载时间

    我开发了 Blazor Server 服务器应用程序 客户显然不喜欢 无法重新连接到服务器 重新加载页面以恢复功能 的消息 这就是我尝试探索迁移到 Web Assembly 的原因 我正在努力 如何加快 Web 程序集加载时间 因为主页无法
  • C++ 预处理器输出中的 是什么?

    Summary C 预处理器输出包括一些行
  • 将固定宽度文本文件导入sqlite

    将固定宽度文本文件导入到 sqlite 表中 最好不使用外围软件 的好方法是什么 例如 指定每个字段的宽度 Field 1 10 characters starting with the second character Field 2 5
  • 如何在C#中调用需要证书的Web服务?

    我需要与具有以下权限的第三方进行通信 asmx网络服务 此 Web 服务使用 https 我有所需的证书 pfx 第一次尝试使用添加此服务时Add Service Reference在 Visual Studio 中 我收到错误 我通过将证
  • 禁用标准。 Python 沙箱实现中的文件 I/O 和文件 I/O

    我正在尝试设置 Python 沙箱并希望禁止访问标准和文件 I O 我正在运行的 Python 服务器内运行沙箱 我已经看过类似的模块RestrictedPython and PyPy 但是 我希望能够在正在运行的 Python 服务器内部
  • 当对象属性不存在时引发错误

    别名标题 对象属性的严格模式 我正在开发一个错误管理器 我希望它非常严格 假设您正在调用一个不存在的属性 这通常被解释为未定义 相反 它应该抛出一个错误 例如 var obj obj PI throw Error instead of un
  • Brew doctor:dyld:库未加载&错误:zlib 没有可用的公式

    When I brew doctor我收到以下错误 dyld Library not loaded usr lib libltdl 7 dylib Referenced from usr local bin php Reason image
  • 为什么我有 PUSH ecx?

    有人可以告诉我这两个的目的是什么吗push ecx下面的说明 我不明白他们到底要做什么 我意识到push epb正在保存堆栈基指针 然后mov epb esp正在将堆栈指针分配给前一个堆栈基指针 int main 01301190 push
  • UNIX 中 Java“包不存在”错误

    我的项目目录结构是这样的 ProjectName coursesRegistration src coursesRegistration util当我做 import coursesRegistration util FileProcess
  • 构建 GDAL 时出错:应定义 PROJ_INCLUDE。 PROJ >= 6 是必需的依赖项

    我正在尝试让 GDAL 3 0 1 正常工作 生成 Visual Studio 2017 项目是小菜一碟 我所需要的只是运行generate vcxproj bat 但现在我在这一行遇到错误makefile vc IF DEFINED PR
  • 设置 Gtk3 MenuItem 的悬停背景颜色

    我有一个带有弹出菜单的托盘图标 我正在尝试设置此弹出窗口中菜单项的背景颜色 我可以设置文本颜色 但不能设置菜单项的背景颜色 显示的背景是默认的 Ubuntu 橙色 我无法覆盖它 我创建了一个示例应用程序来演示这个问题 只需将其复制粘贴到 p
  • 我可以在 Visual Studio 2005 中使用 C# 创建透明按钮吗

    我有一个用户界面 需要在 C 项目中放置一些圆形按钮 并在其后面放置一些数据 这些按钮是 System Windows Forms buttons 我使用具有透明度的 GIF 图像来创建它们 然而 透明区域并不透明 我在网上查找了参考资料
  • 如何在单击按钮时从 JavaFX WebView 调用 JavaScript 函数?

    我正在尝试从 JavaFX 调用 JavaScript 函数WebView http docs oracle com javafx 2 api javafx scene web WebView html在 JavaFX 按钮单击事件上 我正
  • 哪个 .NET 类将多个 HTTP cookies 字符串解析为 CookieCollection 或 CookieContainer?

    我确信它已经存在于某个地方 只是找不到它 我想这听起来像是你想要的CookieContainer SetCookies method http msdn microsoft com en us library system net cook
  • 具有数字名称的枚举

    以下内容在 Python 中不起作用 class MemorySize int Enum 1024 1024 2048 2048 那么 在不必用文字输入整个数字并确保输入安全的情况下 最接近的方法是什么 From docs https do