当前位置:首页 > 数码 > Python-经常使用和最佳通常-深刻指南-定义-枚举类 (python编程)

Python-经常使用和最佳通常-深刻指南-定义-枚举类 (python编程)

admin7个月前 (05-13)数码44

枚举(Enum)是一种有助于提高代码可读性和可保养性的数据类型,准许咱们为一组关系的常量赋予无心义的名字。

在/target=_blankclass=infotextkey>Python中,枚举类(Enum)提供了一种繁复而弱小的形式来定义和经常使用枚举。

一、枚举类

1.1什么是枚举类?

枚举类是一种不凡的数据类型,用于示意一组具备团圆取值的常量。它将常量与无心义的名字关联起来,使得代码更易读、更易保养。枚举类的每个成员都有一个惟一的称号和一个关联的值。

枚举类的典型用例包含示意色彩、方向、形态、星期几等常量值。经常使用枚举可以增强代码的可读性,缩小硬编码的危险。

1.2Python中的枚举类

在Python中,经常使用内置模块enum来创立和经常使用枚举类。

enum模块提供了Enum类,准许定义自己的枚举类型。

二、定义和经常使用枚举类

2.1定义枚举类

要定义一个枚举类,须要导入Enum类并创立一个承袭自它的子类。在子类中,咱们定义枚举成员,并为每个成员调配一个称号和一个关联的值。

示例代码:

fromenumimportEnumclassColor(Enum):RED=1GREEN=2BLUE=3

在这个示例中,定义一个名为Color的枚举类,它有三个成员:RED、GREEN和BLUE,每个成员都有一个整数值与之关联。

2.2访问枚举成员

定义枚举类,可以经过成员名来访问枚举成员。例如:

print(Color.RED)#输入:Color.REDprint(Color.GREEN)#输入:Color.GREEN

2.3失掉枚举成员的值

要失掉枚举成员的关联值,可以经常使用成员的value属性。例如:

print(Color.RED.value)#输入:1print(Color.GREEN.value)#输入:2

2.4比拟枚举成员

枚举成员可以经常使用相等运算符启动比拟。可以间接比拟枚举成员,而不用比拟它们的值。例如:

color1=Color.REDcolor2=Color.GREENprint(color1==color2)#输入:False

2.5迭代枚举成员

经常使用for循环来迭代枚举类的一切成员。例如,要打印一切色彩的称号和值:

forcolorinColor:print(f"{color.name}:{color.value}")

2.6将值映射到枚举成员

依据枚举成员的值来失掉成员自身,可以经过枚举类的__members__属性来成功。

例如,要依据值失掉Color枚举成员:

value=2color=Color(value)print(color)#输入:Color.GREEN

三、枚举的最佳通常

第三局部:枚举的最佳通常

枚举是一种有用的数据类型,但在经常使用时须要遵照一些最佳通常,以确保代码的可读性和可保养性。

3.1经常使用枚举替代魔术数字

在代码中经常使用枚举来替代魔术数字(不明白的常量值)可以参与代码的可读性。枚举为常量提供了无心义的名字,使得代码更容易了解。

例如,经常使用枚举来示意星期几:

fromenumimportEnumclassWeekday(Enum):MONDAY=1TUESDAY=2WEDNESDAY=3THURSDAY=4FRIDAY=5SATURDAY=6SUNDAY=7

3.2防止硬编码

尽量防止在代码中硬编码枚举成员的值。假设须要经常使用枚举成员的值,最好经常使用枚举成员自身而不是其值。这可以提高代码的可读性,使得代码更容易保养。

例如,防止这样的写法:

ifday==1:#防止硬编码print("TodayisMonday")

而经常使用枚举成员:

ifday==Weekday.MONDAY:#更具体现力print("TodayisMonday")

3.3经常使用枚举成员的称号

枚举成员的称号通常应该经常使用大写字母,以便与惯例变量和函数称号区离开。这是一种商定,有助于提高代码的可读性。例如,经常使用RED而不是red。

3.4思考枚举成员的值类型

枚举成员的值通常是整数,但依据高低文和需求,可以选用不同的值类型,如字符串。选用适当的值类型可以使代码更具体现力。

3.5思考用法和高低文

在定义枚举时,思考其用法和高低文。命名枚举成员和选用适宜的值应该反映其在运行程序中的含意和用途。这有助于其余开发人员更容易了解和经常使用枚举。

3.6枚举的无法变性

枚举成员是无法变的,一旦创立就不能更改其值。这有助于确保枚举成员的稳固性,并防止异常的修正。

遵照这些最佳通常可以协助你有效地经常使用枚举,提高代码的可读性和可保养性。枚举是一种弱小的工具,可以在代码中替代魔术数字,并提供无心义的常量称号。

总结

Python的枚举类是一种弱小的工具,用于示意一组关系的常量,并提高代码的可读性和可保养性。经过枚举,咱们可认为常量赋予无心义的称号,防止硬编码的值,以及更容易启动比拟和迭代。

在实践编程中,枚举类可以提供一种明晰、可保养且更具体现力的形式来处置常量值。


在Python语言中用变量m存储100,用变量n存储13.14输出mn的值?

枚举:是一种基本数据类型而不是构造数据类型枚举可以根据Integer、Long、Short或Byte中的任意一种数据类型来创建一种新型变量。 这种变量能设置为已经定义的一组之中的一个,有效地防止用户提供无效值。 该变量可使代码更加清晰,因为它可以描述特定的值。 使得程序的可读性和可维护性大大提高然而,很不幸,也许你习惯了其他语言中的枚举类型,但在Python3.4以前却并不提供。 关于要不要加人枚举类型的问题就引起了不少讨论,众多开发者曾提出增加枚举的建议,但被拒绝。 于是人们充分利用Python的动态性这个特征想出了枚举的各种替代实现方式。 (前辈们真的都是大神)1.使用类属性。 2.借助函数3.使用 中枚举的替代实现方式远不止上述这些,在此就不一一列举了。 那么,既然枚举在Python中有替代的实现方式。 为什么人们还要执着地提出各自建议要求语言实现枚举呢?显然这些替代实现有其不合理的地方。 (1)允许枚举值重复。 我们以为例,下面的例子中枚举值Spring与Autumn相等,但却不会提示任何错误。 (2)支持无意义的操作。 实际上2.7以后的版本还有另外一种替代选择:使用第三方模块,它包含两种枚举类:一种是Enum,只要保证枚举值唯一即可,对值的类型没限制;还有一种是IntEnum,其枚举值为int型。 可以直接使用value属性获取枚举元素的值,如:

python类的定义与使用是什么?

类Class:用来描述具体相同的属性和方法的对象的集合。定义了该集合中每个对象所共有的属性和方法。对象是类的示例。

类定义完成时(正常退出),就创建了一个 类对象。基本上它是对类定义创建的命名空间进行了一个包装;我们在下一节进一步学习类对象的知识。原始的局部作用域(类定义引入之前生效的那个)得到恢复,类对象在这里绑定到类定义头部的类名(例子中是 ClassName )。

基本语法

枚举类

Python的设计目标之一是让代码具备高度的可阅读性。它设计时尽量使用其它语言经常使用的标点符号和英文单字,让代码看起来整洁美观。它不像其他的静态语言如C、Pascal那样需要重复书写声明语句,也不像它们的语法那样经常有特殊情况和意外。

以上内容参考:网络百科-Python

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: Python

“Python-经常使用和最佳通常-深刻指南-定义-枚举类 (python编程)” 的相关文章

Python中的LEGB规则 (python怎样打开)

Python中的LEGB规则 (python怎样打开)

Python 中的 LEGB 规则决定了变量和函数的作用域解析顺序。它代表了四个作用域层级: 局部作用域 闭包函数外的函数 全局作用域 内置作用域...

b-b-个入门建议!-Python-技术书籍推荐-附赠-11 (b+b+b等于什么)

b-b-个入门建议!-Python-技术书籍推荐-附赠-11 (b+b+b等于什么)

近年来,Python 持续火爆,越来越多的人开始入门学习 Python。RealPython 作为最受好评的 Python 学习网站,拥有超百万的浏览量,以下是 RealPython 的开发者给...

处置日常义务的终极工具!-Python-文件读写实战 (处置行为是什么意思)

处置日常义务的终极工具!-Python-文件读写实战 (处置行为是什么意思)

/target=_blankclass=infotextkey>Python文件的读写操作时,有很多须要思考的细节,这包含文件关上形式、读取和写入数据的方法、意外处置等。 在本文中,...

Python中的Random模块-摸索随机性的神奇环球 (python编程)

Python中的Random模块-摸索随机性的神奇环球 (python编程)

随机性在计算机编程和数据迷信中表演着至关关键的角色。/target=_blankclass=infotextkey>Python中的random模块提供了丰盛的工具和函数,协助咱们生成随机数...

五分钟内完成个性化-GUI-计算器搭建-Python (五分钟内完成的动物实验)

五分钟内完成个性化-GUI-计算器搭建-Python (五分钟内完成的动物实验)

这个简单的教程将指导你如何在 Python 中使用 Tkinter 轻松制作一个全功能的 GUI 计算器。 7 8...

Python-无缝登录运行程序!-轻松生成卡密-编写初级注册机-经常使用 (python怎样打开)

Python-无缝登录运行程序!-轻松生成卡密-编写初级注册机-经常使用 (python怎样打开)

在本文中,咱们将讨论如何经常使用/target=_blankclass=infotextkey>Python编写一个注册机。 用于生成卡密(兑换码),并经常使用这些卡密登录运行程序。...

Python之Redis操作 (python怎样打开)

Python之Redis操作 (python怎样打开)

Redis 是一款高性能内存数据库,广泛用于缓存、消息队列、会话管理等应用。Python 通过各种库支持与 Redis 的交互,使开发者能够轻松地在 Python 应用中使用 Redis。本文将介...

Python开发中的PyCharm神器-解剖其卓越优势 (python编程)

Python开发中的PyCharm神器-解剖其卓越优势 (python编程)

近年来,对于 Python 初学者的一个常见问题是选择哪种代码编辑工具。虽然 Jupyter Notebook 对于经常进行数据可视化的人来说很方便,但对于刚开始学习 Python 的人来说,Py...