广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中Enum使用的几点注意事项
  • 658
分享到

Python中Enum使用的几点注意事项

2024-04-02 19:04:59 658人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

Enum 是个类 所以 基本的类操作都可以用 也就是我们可以添加自己的方法 class Mood(Enum): FUNKY = 1 HAPPY = 3 def

Enum 是个类

所以

基本的类操作都可以用

也就是我们可以添加自己的方法

class Mood(Enum):
    FUNKY = 1
    HAPPY = 3
    def describe(self):
        # self is the member here
        return self.name, self.value
    def __str__(self):
        return 'my custom str! {0}'.fORMat(self.value)
    @claSSMethod
    def favorite_mood(cls):
        # cls here is the enumeration
        return cls.HAPPY
>>> Mood.favorite_mood()
<Mood.HAPPY: 3>
>>> Mood.HAPPY.describe()
('HAPPY', 3)
>>> str(Mood.FUNKY)
'my custom str! 1'

Enum的每个类成员,都会自动被转换成当前类的一个实例

from enum import Enum
class Color(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3
>>> type(Color.RED)
<enum 'Color'>
>>> isinstance(Color.GREEN, Color)
True

这就意味着,我们不能用枚举成员直接当成它的value来用:

>>> Color.RED == 1
False
>>> Color.RED.value == 1
False

枚举成员还有个name属性,跟它的变量名相同

>>> Color.RED.name == "RED"
True

枚举类有个大坑:父类有成员的时候,就不能定义子类

所以,对于上面的Color类,如果还想定义一个子类,就会出错:

>>> class MoreColor(Color):
...     PINK = 17
...
Traceback (most recent call last):
...
TypeError: MoreColor: cannot extend enumeration 'Color'

但父类没有枚举成员,仅仅定义了函数是可以的:

class Foo(Enum):
    def some_behavior(self):
        pass

class Bar(Foo):
    HAPPY = 1
    SAD = 2

这显然大大限制了枚举类的扩展,一个不能访问成员的函数,用处也就不大了。

附Python Enum使用总结

1.枚举类不能用来实例化对象

2.访问枚举类中的某一项,直接使用类名访问加上要访问的项即可,比如 color.RED

3.枚举类里面定义的 Key = Value,在类外部不能修改 Value 值

4.枚举项可以用来比较,使用 ==,或者 is

5.枚举类中的 Key 不能相同,Value 可以相同,但是 Value 相同的各项 Key 都会当做别名

6.枚举类可以用 for 进行遍历,members.items() 可以遍历出含有别名的类

7.如果要枚举类中的 key 也不能相同,需要导入 unique 对枚举类进行装饰

总结

到此这篇关于python中Enum使用的几点注意事项的文章就介绍到这了,更多相关Python Enum使用注意事项内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python中Enum使用的几点注意事项

本文链接: https://www.lsjlt.com/news/140102.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中Enum使用的几点注意事项
    Enum 是个类 所以 基本的类操作都可以用 也就是我们可以添加自己的方法 class Mood(Enum): FUNKY = 1 HAPPY = 3 def...
    99+
    2022-11-13
  • Python中Enum使用的注意事项有哪些
    小编给大家分享一下Python中Enum使用的注意事项有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Enum 是个类所以基本的类操作都可以用也就是我们可以添...
    99+
    2023-06-29
  • MySQL中enum插入的注意事项有哪些
    MySQL中enum插入的注意事项有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。今天在执行开发发过来的工单的时候,source批量导入执...
    99+
    2022-10-18
  • 云主机选择的注意事项有哪几点
    本篇文章为大家展示了云主机选择的注意事项有哪几点,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。互联网信息时代已经到来了,基于云计算的云智能也已经逐渐融入到我们的生活中,而作为元计算的基础设施应用上重...
    99+
    2023-06-07
  • 关于golang中map使用的几点注意事项总结(强烈推荐!)
    目录前言1 使用 map 记得初始化2 map 的遍历是无序的3 map 也可以是二维的4 获取 map 的 key 最好使用这种方式5 map 是并发不安全的 ,sync.Map ...
    99+
    2023-01-28
    golang map操作 golang map使用 go语言的map
  • python executemany的使用及注意事项
    使用executemany对数据进行批量插入的话,要注意一下事项: #coding:utf8 conn = MySQLdb.connect(host = “localhost”, user = “roo...
    99+
    2022-06-04
    注意事项 python executemany
  • PHP使用PHPMailer发送邮件时注意事项和注意点
    PHP是一种强大的编程语言,通过它我们可以构建出各种应用程序,其中邮件发送应用是很重要的一个。PHPMailer是PHP中用来发送邮件的一个第三方库,它在使用上非常简单,而且功能也非常强大。但是,在发送邮件的过程中,我们还是需要注意一些事项...
    99+
    2023-05-21
    PHPMailer 注意事项 发送邮件
  • Springboot中@RequestBody注解使用的注意事项
    这篇文章将为大家详细讲解有关Springboot中@RequestBody注解使用的注意事项,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。@RequestBody注解踩坑@RequestBody json...
    99+
    2023-06-29
  • Python多线程使用和注意事项
    多线程   基本实现: 第一种,函数方式 # -*- coding:utf-8 -*- import thread import time     def print_time(threadName, delay):     count...
    99+
    2023-01-30
    多线程 注意事项 Python
  • 在SpringBoot中使用lombok的注意事项
    目录Lombok需求Lombok的使用开发工具无论是idea还是eclipse都必须要安装插件在项目中依赖Lombok如下简化javabean证明lombok在编译以后会自动生成Lo...
    99+
    2022-11-12
  • Js中parseInt的使用及注意事项
    目录start回顾一下map学习一下 parseInt总结:总结start 先看一个题目['1','2','3'].map(parse...
    99+
    2023-01-03
    js parseInt js parseint 精度 js parseint 小数
  • 在python中使用集合时需要注意的事项
    这篇文章将为大家详细讲解有关在python中使用集合时需要注意的事项,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语...
    99+
    2023-06-14
  • python闭包使用要注意哪些事项
    在使用Python闭包时,需要注意以下几个事项: 理解闭包的概念:闭包是指一个函数内部定义的函数,并且该内部函数引用了外部函数的...
    99+
    2023-10-27
    python
  • 使用CDN的一些注意事项
    使用CDN的注意事项有: 选择CDN的时候,为了保障网站的安全性,应该选择安全可靠的提供商。不要为搜索引擎设置指定IP,不然CDN发挥不了作用,会使CDN加速系统就无法给出最佳的加速线路。做域名CNAME解析时,地址后面要加点,不然CDN网...
    99+
    2022-10-20
  • 关于Arrays.sort()使用的注意事项
    目录Arrays.sort()使用注意事项Arrays.sort()平时经常用到:有两种方式Arrays.sort()降序排列问题Arrays.sort()使用注意事项 Java中的...
    99+
    2022-11-13
  • 详解Python中深浅拷贝的使用及注意事项
    目录一、Python深浅拷贝概念二、Python深浅拷贝使用场景三、Python深浅拷贝注意事项四、Python深浅拷贝实现1. 使用copy模块2. 使用pickle模块五、总结一...
    99+
    2023-05-15
    Python深浅拷贝使用 Python深浅拷贝 Python深拷贝 Python浅拷贝
  • 在python中使用zip函数时需要注意的事项
    在python中使用zip函数时需要注意的事项?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工...
    99+
    2023-06-14
  • C/C++浮点数使用的两个注意事项详解
    目录一.回顾浮点数的存储与读取二.浮点数使用的第一个注意事项三.浮点数使用的第二个注意事项 附: 观察内存中的FLT_MAX和FLT_MIN补充:C 语言两个浮点数比较大小...
    99+
    2023-02-06
    c++ 浮点数 c语言正确的浮点数 c++浮点型
  • 在python中使用lxml时需要注意哪些事项
    这篇文章将为大家详细讲解有关在python中使用lxml时需要注意哪些事项,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python主要应用领域有哪些1、云计算,典型应用OpenStack。...
    99+
    2023-06-14
  • 在python中使用yield时需要注意哪些事项
    在python中使用yield时需要注意哪些事项?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作