首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我应该如何最好地模仿和/或避免使用Python中的枚举?

在Python中,枚举是一种用于表示一组有限的值的类。枚举常用于表示一周中的星期、月份、颜色等。要模仿和/或避免使用Python中的枚举,可以使用以下方法:

  1. 使用类常量:
代码语言:python
代码运行次数:0
复制
class Weekday:
    MONDAY = 0
    TUESDAY = 1
    WEDNESDAY = 2
    THURSDAY = 3
    FRIDAY = 4
    SATURDAY = 5
    SUNDAY = 6
  1. 使用字符串常量:
代码语言:python
代码运行次数:0
复制
class Weekday:
    MONDAY = "Monday"
    TUESDAY = "Tuesday"
    WEDNESDAY = "Wednesday"
    THURSDAY = "Thursday"
    FRIDAY = "Friday"
    SATURDAY = "Saturday"
    SUNDAY = "Sunday"
  1. 使用元组:
代码语言:python
代码运行次数:0
复制
WEEKDAY = ("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday")
  1. 使用列表:
代码语言:python
代码运行次数:0
复制
WEEKDAY = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
  1. 使用字典:
代码语言:python
代码运行次数:0
复制
WEEKDAY = {
    "Monday": 0,
    "Tuesday": 1,
    "Wednesday": 2,
    "Thursday": 3,
    "Friday": 4,
    "Saturday": 5,
    "Sunday": 6
}
  1. 使用枚举库:

Python中有一些第三方库可以实现枚举功能,例如aenum库。

代码语言:python
代码运行次数:0
复制
from aenum import Enum

class Weekday(Enum):
    MONDAY = 0
    TUESDAY = 1
    WEDNESDAY = 2
    THURSDAY = 3
    FRIDAY = 4
    SATURDAY = 5
    SUNDAY = 6

通过以上方法,可以在不使用Python内置枚举类型的情况下实现类似枚举的功能。

相关搜索:我怎样才能最好地避免在我的语言或框架中使用保留或关键词?我应该更好地使用Laravel 5.7中的session()或collect() helper函数吗?如何将#或##与xaringan和rmarkdown中的枚举结合使用Python中的3d函数和矩阵--我应该使用NumPy吗?我应该如何在Optional[]中定义创建子可选模型,使用FastAPI python的类型化和pydantic库?如何使用我自己的python类中定义的变量正确地打印句子?使用Python,我如何在我的SQLite DB中返回row #和描述?如何避免for循环并在代码中使用替代方法( python和postgres sql)?下面是我的代码如何检查是否使用conda或pip安装了Python、pandas和Jupyter?我应该用conda重新安装它吗?我想使用PHP或Python在单个脚本中组合GET和PUT调用,目前我使用的是Postman我应该如何使用Apollo Client和Link Rest在GraphQL中查询和匹配同一响应中的数据?我应该如何改变这个函数,使其能够灵活地处理Python2和Python3中的字符串和unicode?如何使用cp和/或find递归地将src中的所有*.foo文件复制到目标?如何在数据帧上使用def-return或for-in语句,以避免python /pandas中的代码重复如何使用PHP和/或JavaScript将用户的分数存储在我的网站上的变量中?如何在python中使用split()来确定我的歌曲中的行数和单词数我使用jsonify和flask和python3制作的JSON格式是否正确,可以制作D3图形?如果没有,我应该如何格式化它?如何使用python激活(或停用) Gurobi中的切分?我在哪里可以找到关于这些削减的文档?我使用了SARIMA中的训练集和测试集来预测应该是当前值,但是我如何预测超出时间戳的值呢我的Mac上有两个python 3版本。如何使用新版本和/或删除旧版本?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python中的__init__()方法整理中(两种解释)

在我们接触__init__()方法之前,无论如何,我们都需要粗略、简单地看看在Python中隐含的object类的层次结构。...在我们接触__init__()方法之前,无论如何,我们都需要简单粗略地看看Python中隐含的object类的层次结构。 在这一章,我们看看不同形式的简单对象的初始化(例如:打牌)。...这些属性没有初始化,是合法的Python代码。它可以明确地避免设置属性,虽然感觉有点奇怪,但是合法。...然后,我们给类传递rank值和suit值来创建最终的Card实例。 最好我们使用defaultdict类。无论如何,对于微不足道的静态映射不会比这更简单了。...在各个子类中实现__init__() 当我们看到创建Card对象的工厂函数,再看看Card类设计。我想我们可能要重构牌值转换功能,因为这是Card类自身应该负责的内容。

6.5K50

Python中的__init__()方法整理中(两种解释)

在我们接触__init__()方法之前,无论如何,我们都需要粗略、简单地看看在Python中隐含的object类的层次结构。...在我们接触__init__()方法之前,无论如何,我们都需要简单粗略地看看Python中隐含的object类的层次结构。 在这一章,我们看看不同形式的简单对象的初始化(例如:打牌)。...这些属性没有初始化,是合法的Python代码。它可以明确地避免设置属性,虽然感觉有点奇怪,但是合法。...然后,我们给类传递rank值和suit值来创建最终的Card实例。 最好我们使用defaultdict类。无论如何,对于微不足道的静态映射不会比这更简单了。...在各个子类中实现__init__() 当我们看到创建Card对象的工厂函数,再看看Card类设计。我想我们可能要重构牌值转换功能,因为这是Card类自身应该负责的内容。

2.7K60
  • 重温《Framework Design Guidelines》

    总的来说,框架中除了函数的参数外所有可见的部分都应该使用PascalCasing风格,因为资源通常可以以属性的方式被使用,所以资源的Key应该使用Pascal。...避免在命名基类时使用“Base”后缀 -- 如果公共API中会用到这个类。 ? 但是微软自己的框架中就一大堆啊?不过这些都不常用,给一般用户的API最好还是要遵守这条规范。...,但即使不特别提出来,参考.NET Framework中的枚举也能很好地遵守这些规范。...这些类型的设计目的是为了用于内部实现,应该使用Collection、IEnumerable、或IDictionary。 要在公共API中优先使用集合,避免使用数组。...现在我在处理的遗留代码既使用数组作为属性,又可Get和Set,毕竟是从很久以前一路修改过来的,当时的开发者应该也没想到这些代码现在会让人这么困扰吧。

    1.3K41

    React 条件渲染最佳实践(7 种方法)

    在 javascript 中,我们通常使用if else 语句,switch case语句和三元运算符编写条件渲染。 以上所有这些方法都适用于 React。但是问题是,我们如何才能有效地使用它们?...在 JSX 中,我们应该使用其他条件渲染方法,例如三元运算符和&&运算符。在这里,我们将讨论更多细节。 以下是我积累的 7 种条件渲染方法,它们可以在 React 中使用。...我们可以在 React 项目中的任何地方使用它。 在 React 中,如果要在 if 或者 else 块内部或 JSX 外部的任何地方执行多行代码,最好使用通用的 if-else 语句。...对于 JSX 标记中的 switch-case语句,它是更好的选择。 如你所知,在第 5 种方法中,你应该将switch-case语句包装在 JSX 的 IIFE 中。使用枚举对象,你不需要这样做。...将枚举对象拆分到单独文件来复用 关于使用枚举对象进行条件渲染的最好的特性是可以复用。 回到示例案例,Alert 组件是 React 中通常可重用的组件。因此,当你要有条件地渲染它时,也可以让它复用。

    5.8K20

    谁说Python不能绘制环形基因组图?快看这个..

    前言 今天是我的可视化课程上线的第210天,目前学员408人,每篇原创公众号都会记录这个人数,用来督促和激励我的原创内容。...当然,你也可以使用功能更加强大的pyCirclize拓展包。 如何快速的掌握论文中的绘图技巧? 在科研论文撰写过程中,可视化配图的绘制也非常重要,那么如何快速的掌握科研绘图技巧?...模仿和实践: 查看优秀的科研绘图范例,模仿它们的风格和技巧。同时,勤练手,多做练习,实践是提高技能的关键。...了解图表类型和用途: 了解不同类型的科研图表,例如折线图、柱状图、散点图等,以及它们在传达信息方面的优缺点。 注重细节和清晰性: 细节决定成败,确保图表的字体清晰、线条精细、标签明了,避免视觉混乱。...遵循学术规范: 遵循学术期刊或机构对图表的规定和要求,包括字体大小、图表标题、坐标轴标签等。 请教专家或同事: 有条件的同学可以跟随一个大佬进行系统学习,向他们寻求指导和建议,可以加速你的学习过程。

    74320

    黑马程序员2024最新SpringCloud微服务开发与实战 个人学习心得、踩坑、与bug记录Day1最快 最全

    为了避免循环依赖,可以考虑以下几种方法: 重构类设计:尽量避免直接相互依赖,可以考虑通过接口、抽象类或事件总线等方式来解耦类之间的关系。...这样设计使得用户表单实体可以轻松地与收货地址相关联,同时避免了将地址信息直接嵌入到用户表单实体中的复杂性。...@JsonValue 是两个注解,通常用于在 Java 枚举类中定义枚举值的序列化和反序列化方式。...@EnumValue: 用于标识枚举类中表示数据库存储值的字段。 在 MyBatis Plus 中,当将枚举值持久化到数据库时,会使用被 @EnumValue 注解标记的字段的值。...这个值应该是枚举类中定义的一个整数字段,通常用来表示数据库中的实际存储值。 @JsonValue: 用于标识枚举类中表示枚举值描述的字段。

    14110

    Go 开发者必备:Protocol Buffers 入门指南

    我将逐步讲解如何安装和配置 Protobuf 编译器,编写和编译 .proto 文件,理解 Protobuf 的核心概念,如何定义和生成消息类型与服务接口。...如果你为 map 字段提供了一个键但没有提供值,则序列化时的行为取决于语言:在 C++、Java、Kotlin 和 Python 中,序列化时会使用该类型的默认值。...每个枚举值后应以分号结尾,而不是逗号。避免命名冲突:建议为每个枚举值加上枚举名称前缀或将枚举嵌套在消息内部。使用顶级枚举:如果可以,避免嵌套枚举。零值枚举:枚举的零值命名应为 UNSPECIFIED。...在单独的文件中定义消息类型undefined 每个 proto 文件最好只定义一个消息、枚举、扩展、服务或循环依赖。将相关类型放在一个文件中会更容易进行重构和维护,也能确保文件不被过度膨胀。...避免使用文本格式消息进行交换 文本格式(如 JSON 和文本格式)的序列化方法并不适合用于数据交换。它们将字段和枚举值表示为字符串,因此在字段或枚举值重命名或新增字段时,旧代码会导致反序列化失败。

    265146

    小公司应该避免的十大技术策略和应该遵循的五大建议

    将全部精力放在一个云提供商上,云平台才会展现出它的魔力:易用性、简单性和效率。 2. 使用“最好的工具” 不要使用最好的工具来完成工作,这听起来有悖常理,不是吗?...在 Intercom,我们成功地将 Lambda 作为 AWS 服务之间的粘合代码。我认为 Lambda 是一项惊人的技术,但它应该被用在对的地方。...此外,你真正需要从这些成功的公司获得的信息通常不会在博客或会议演讲中透露。这些东西通常是一些工程师为完成 KPI 或 OKR 而做的事情。相反,你应该与规模相似的初创公司的工程师们建立关系。...根据我的经验,这样做非常有效。 9. 模仿 Hyperscaler 从成功的初创公司那里获得灵感是件好事,但你绝对不应该去模仿像亚马逊、谷歌和微软这样的大型云供应商。...当你确实需要解决一些超出当前技术栈的问题时,我建议先避免自己去构建任何东西,而是简单地使用现有云提供商提供的东西。 5.

    53420

    匿名函数闭包模仿块级作用域,轻松解决开发中的两大难题

    匿名函数闭包模仿块级作用域 一、引言 二、什么是块级作用域 三、如何模仿块级作用域 四、模仿块级作用域的作用 (1)减少闭包占用内存的问题 (2)避免多人开发时造成的命名冲突 五、使用匿名函数闭包时的注意点...三、如何模仿块级作用域 上文也说了,JavaScript中函数可以形成一个单独的作用域,所以我们就可以通过定义一个匿名函数并进行自调用的方式来模拟出一个块级作用域来。...四、模仿块级作用域的作用 上面说了那么多,也介绍了JavaScript如何使用匿名函数来模仿块级作用域,那么模仿块级作用域到底有什么作用呢?...…… 但你会发现这样的命名显得很复杂和臃肿,所以此时你就可以通过匿名函数闭包模仿块级作用域来解决这种问题。...六、结束语 希望这篇文章对你们有所帮助 我是Lpyexplore,带你在python爬虫的过程中学习web前端,创作不易,喜欢的加个关注,点个收藏,给个赞~

    71020

    Feature-engine: 一个完备的特征工程Python库,实现端到端的特征流水线

    其实对于结构化数据建模,即使用深度学习模型,特征工程也是比模型本身要重要的。什么是好的特征? 好的特征应是对任务有用的特征,应该具有以下表格中的特质:对当前任务“有用”的特征。...最好具有清晰明确的含义,最好能见文识意。特征的值不应该超出语义范围或者业务知识范围。例如:“季节”特征不应该出现除了春夏秋冬外的其他季节。...使用Feature-engine 可以使模型开发和部署更加高效和可重用。Feature-engine库的特点:包含最详尽的特征工程转换集合。可以转换数据帧中的一组特定变量。...如何安装Feature-engine是Python 3的一个包,可以在Python 3.8或更高版本中运行,安装非常方便。...我们可以将所有的特征转换器放置在Scikit-learn管道中,避免耗时繁琐的手动转换。​5.

    1.1K00

    30个Python程序员需要知道的编程技巧,可以让你的工作事半功倍!

    推荐下小编的Python学习q u n 227-435-450,不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2018最新的Python资料和0基础入门教程,欢迎初学和进阶中的小伙伴...16.使用枚举 使用枚举可以很容易地在循环中找到索引: 17.在 Python 中使用枚举量 我们可以用如下方法来创建枚举定义: 18.从函数中返回多个值 支持这种功能的编程语言并不多,然而,Python...26.使用拉姆达来模仿输出方法 27.从两个相关序列中创建一个字典 28.用一行代码搜索字符串的前后缀 29.不使用任何循环,构造一个列表 如果输入列表中有嵌入的列表或元组作为元素,那么就使用下面这种方法...,不过也有个局限,它使用了 for 循环: 30.在Python中实现一个真正的switch-case语句 下面是使用字典模仿一个 switch-case 构造的代码示例: 结语 希望上面列出的这些...Python 技巧和建议能帮你快速和高效地完成 Python 开发,可以在项目中应用它们。

    82710

    不是,这个地理数据工具这么强的吗?数据处理、可视化它都行···

    MetPy包官网[1] 「PS」:我们的《Python可视化课程》后期也会免费更新使用MetPy包可视化展示的具体案例呢 如何快速掌握地理绘图中的可视化技巧?...在地理数据的可视化展示中,如何快速的掌握地理科研绘图技巧?笔者给大家列举了以下几点: 学习基本工具和软件: 先熟悉常用的科研绘图工具和软件,例如Python或者R语言等,选择一款适合你的工具。...参考教程和指南: 在线教程、视频教程和指南是学习的好资源。 模仿和实践: 查看优秀的科研绘图范例,模仿它们的风格和技巧。同时,勤练手,多做练习,实践是提高技能的关键。...了解图表类型和用途: 了解不同类型的科研图表,例如折线图、柱状图、散点图等,以及它们在传达信息方面的优缺点。 注重细节和清晰性: 细节决定成败,确保图表的字体清晰、线条精细、标签明了,避免视觉混乱。...遵循学术规范: 遵循学术期刊或机构对图表的规定和要求,包括字体大小、图表标题、坐标轴标签等。 请教专家或同事: 有条件的同学可以跟随一个大佬进行系统学习,向他们寻求指导和建议,可以加速你的学习过程。

    59120

    NetworkX,网络结构图最强绘制工具·····

    前言 今天是我的可视化课程上线的第201天,目前学员402人,每篇原创公众号都会记录这个人数,用来督促和激励我的原创内容。...NetworkX提供了丰富的数据结构和函数,使得用户能够轻松地构建、分析和可视化复杂网络。...安装 NetworkX 你可以使用 pip 命令来安装 NetworkX: pip install networkx 创建图结构 NetworkX 允许你创建不带权重或带权重的图,有向图或无向图。...如何快速的掌握科研绘图技巧? 如何快速的掌握科研绘图技巧?可以考虑以下几点: 学习基本工具和软件: 先熟悉常用的科研绘图工具和软件,例如Python或者R语言等,选择一款适合你的工具。...参考教程和指南: 在线教程、视频教程和指南是学习的好资源。 模仿和实践: 查看优秀的科研绘图范例,模仿它们的风格和技巧。同时,勤练手,多做练习,实践是提高技能的关键。

    1.7K30

    JOEL SPOLSKY:当“码农”成为CEO

    在知乎上,经常有人讨论“如何优雅地使用Stack Overflow”以及“国内为什么没有好的 Stack Overflow 的模仿者?”据说,有追求的编程人员,每天上SO的次数比洗手间还多。...不过,似乎从来没有人问过从资金角度来看,这位CEO是如何发展业务的——换句话说就是:供着“最好的工作条件、最好的程序员来研发最好的软件”的钱是打哪儿来的?...在一次采访中,Joel简洁地回答了这个问题: 头几年我们自己筹资,然后从广告业务中获利。我们专注于招聘广告,因为这种广告最赚钱——每个人都想聘请程序员。现在招聘广告还是我们的主要收入来源。...例子太多,不胜枚举,对我而言,最令人大开眼界的就是可以更好地获得财务数据。回到十年前,我每个月末都要看这些数据,询问“我们挣了多少?”但随着业务的增长,单月表现的重要性会越来越小。...我已经学会了依靠季度数据,以避免月数据带来的过多噪音与变化。 (四)CEO这个角色 成为CEO之后,工作上最大的改变是什么?

    66430

    【Java】Best coding practices every java developer should

    这篇文章大部分观点和国内的规范习惯类似,令我好奇的是外国人是如何理解这些内容的? 注意本文的Tips排序是打乱的,个人把感兴趣放到了前面来了。...尽可能使用增强for循环或者foreach 建议使用增强for循环(JDK5)和JDK8的foreach,当然最好的建议是活学活用stream的API。为什么会有这样的建议?...由于代码将被具有不同 Java 知识的各种人阅读,因此应该使用适当的注释来概述代码,并提供无法从代码本身感知的其他信息。注释应该描述代码的工作方式,以供质量保证工程师、审阅者或维护人员阅读。...避免创建不必要对象 对象创建是最消耗内存的操作之一,这就是为什么最好的 Java 实践是避免创建任何不必要的对象,并且只应在需要时创建它们。 9....这是因为接口的目的是用于继承和多态性,而不是用于类似的静态东西。所以最佳实践建议我们使用枚举来代替。

    37130

    对Python感兴趣或是刚刚接触python,一定要知道的30个小技巧!

    存储列表元素到新的变量中 如果你在学习Python的过程当中有遇见任何问题,可以加入我的python交流学企鹅群:【611+530+101】,多多交流问题,互帮互助,群里有不错的学习教程和开发工具。...学习python有任何问题(学习方法,学习效率,如何就业),可以随时来咨询我 6. 打印引入模块的文件路径 7. 交互环境下的 “_” 操作符 8. 字典/集合推导 9. 调试脚本 10....检查 Python 中的对象 12. 简化 if 语句 13. 运行时检测 Python 版本 14. 组合多个字符串 15. 四种翻转字符串/列表的方式 16. 玩转枚举 17....在 Python 中使用枚举量 18. 从方法中返回多个值 19. 使用 * 运算符(splat operator)来 unpack 函数参数 20. 使用字典来存储选择操作 21....不使用循环构造一个列表 30. 在 Python 中实现一个真正的 switch-case 语句

    71420

    Python中规范的变量命名会让你的代码更优雅

    人生苦短,我学Python!在Python中,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。变量名应该清晰地表达其用途或含义,避免使用无意义的名称。...一致性为王 在项目中保持一致的变量命名风格,有助于提高代码的可读性和可维护性。可以选择使用下划线分隔单词或采用驼峰命名法,但应在整个项目中保持统一。...在整个项目中保持一致的命名风格,这是专业程序员的自我修养。 使用英文 虽然Python很国际化,但为了代码的通用性和阅读者的方便,建议使用英文命名。...(Enum) 对于一组固定的值,使用枚举类型可以提高代码的可读性和安全性。...i}" for i in range(5)] 遵循DRY原则(Don’t Repeat Yourself) 如果发现同样的信息在多个变量名中重复出现,考虑使用函数或类来封装这些逻辑。

    11310

    Xarray,不用ArcGIS,所有地理空间绘图全搞定...

    空间绘图神器-Xarray 今天直接给大家介绍一下我最近常用的空间绘图神器-Xarray,之所以给大家推荐这个工具包,是因为我最近在空间可视化课程中免费新增的部分内容,其就是使用Xarray工具绘制的。...通过与Matplotlib和Cartopy等库的无缝集成,用户可以轻松地自定义绘图样式和布局。...模仿和实践: 查看优秀的科研绘图范例,模仿它们的风格和技巧。同时,勤练手,多做练习,实践是提高技能的关键。...遵循学术规范: 遵循学术期刊或机构对图表的规定和要求,包括字体大小、图表标题、坐标轴标签等。 请教专家或同事: 有条件的同学可以跟随一个大佬进行系统学习,向他们寻求指导和建议,可以加速你的学习过程。...我懵了··· 节后第一天,就因为论文配图,被导师怼了一上午····· plotnine,打死不学R语言, 我可以用Python到40岁.....

    51330

    Python DeBug的7个步骤【Programming】

    这一点很重要,因为有时候你所做的测试并没有模仿失败的调用; 如果你正在使用一个网络或其他框架来模糊测试,这一点尤其重要。...我不会说我创建了一个测试,当我试图模仿一个错误调用时,它通过了测试,但是,嗯,我做到了,我不认为这是特别不寻常的。 从我的错误中吸取教训。 2....如果你在堆栈上是模糊的,我强烈建议使用 Python Tutor,在那里你可以观察堆栈当你执行代码行。 现在,如果您的Python程序出了问题,解释器会帮助您打印出堆栈。...如果您使用的是python3(您应该使用python3),那么在搜索中包含3会很有帮助;否则,python2解决方案往往会占据搜索结果的顶部。...休息一下 严肃地说,当它不再像一个有趣的挑战或游戏,开始变得真正令人沮丧时,你最好的行动就是离开问题。休息一下。我强烈建议去散散步,试着想想别的事情。

    1.2K00

    Ask Apple 2022 中与 Core Data 有关的问答

    欢迎大家在 Discord 频道[2] 中进行更多地交流Q&A是否可以在 Core Data 中存储照片Q:你好,我看到一些网站建议 Core Data 不应该用于保存照片,也许他们没注意到可以使用 "...如何保存枚举类型Q:在 Core Data 中存储 Swift 枚举( 有或没有关联值 )的推荐方法是什么?A:一种可能的解决方案是将枚举存储为 Transformable 以处理关联值的情况。...避免在小组件中执行复杂任务Q:我们遇到了一系列崩溃,因为我们在一个 Widget 进程和一个应用程序进程中启动了相同的 CoreData 堆栈。...非常希望一个可靠而具体的示例,说明如何安全地清除历史数据以防止磁盘空间浪费。A:清除历史记录是由客户决定的。通常,应用每年或每半年清除一次历史记录。...NSExpression 的 BugQ:我应该如何看待 NSExpression 中的 CAST 函数?这是我应该积极使用的功能吗?

    2.9K20
    领券