最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python深入淺出分析enum枚舉類(lèi)

 更新時(shí)間:2022年07月21日 09:20:56   作者:Flyme?awei  
在python中枚舉是一種類(lèi)(Enum,IntEnum),存放在enum模塊中。枚舉類(lèi)型可以給一組標(biāo)簽賦予一組特定的值,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

枚舉類(lèi)Enum

枚舉類(lèi),在企業(yè)開(kāi)發(fā)中用的比較多

當(dāng)我們需要定義常量時(shí),一個(gè)辦法是用大寫(xiě)的變量通過(guò)整數(shù)來(lái)定義,例如月份:

# 當(dāng)項(xiàng)目中需要使用12個(gè)月份時(shí)
JAN = 1
FEB = 2
...
NOV = 11
DEC = 12

但是這樣的定義的類(lèi)型是 int ,并且仍然是變量,并且在運(yùn)算中,無(wú)法時(shí)時(shí)創(chuàng)建對(duì)應(yīng)的值,當(dāng)然這種指代是以更好的方式去使用變量數(shù)值。

這里存在更好的方法是為這樣的枚舉類(lèi)型定義一個(gè)class類(lèi)型,然后,每個(gè)常量都是class的一個(gè)唯一實(shí)例。Python提供了 Enum 類(lèi)來(lái)實(shí)現(xiàn)這個(gè)功能。

優(yōu)化如下

# -*- coding: utf-8 -*-
from enum import Enum
# 枚舉中,一個(gè)名字對(duì)應(yīng)一個(gè)值
Month = Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Otc', 'Nov', 'Dec'))

這樣我們就獲得了 Month 類(lèi)型的枚舉類(lèi),可以直接使用 Month.Jan 來(lái)引用一個(gè)常量,或者枚舉它的所有成員通過(guò)for循環(huán)進(jìn)行取值,

Month.__members__是Month的內(nèi)置變量,可以打印成員標(biāo)簽,

如果在這個(gè)方法調(diào)用上.items()函數(shù)所有成員都打印出來(lái),數(shù)據(jù)類(lèi)型為元組

for name, member in Month.__members__.items():

    print(f'{name} => {member} , {member.value}')+

定義一個(gè)顏色常量枚舉

# -*- coding: utf-8 -*-
from enum import Enum
# 枚舉中 一個(gè)一個(gè)名字對(duì)應(yīng)一個(gè)值
Month = Enum('抬頭-Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'))
print(Month.__members__)  # 枚舉中的值自動(dòng)從1開(kāi)始,不會(huì)重復(fù)
# 得到三月份的值
print(Month['Mar'].value)  # 3
# 根據(jù)(2)來(lái)獲得月份名字
print(Month(2).name)  # Feb
# 定義一個(gè)顏色的常量枚舉
class Color(Enum):  # 第二種:自定義一個(gè)枚舉類(lèi)
    red = 100
    green = 200
    blue = 300
    yellow = 200  # 不允許key相同或者value,如果value重復(fù),根據(jù)value取name只能取第一個(gè)
print(Color(200))  # Color.green

不允許key相同或者value相同,如果value重復(fù),根據(jù)value取name只能取第一個(gè)

總結(jié)

1.枚舉類(lèi)不能用來(lái)實(shí)例化對(duì)象

2.訪問(wèn)枚舉類(lèi)中的某一項(xiàng),直接使用類(lèi)名訪問(wèn)加上要訪問(wèn)的項(xiàng)即可,比如 color.RED

3.枚舉類(lèi)里面定義的 Key = Value,在類(lèi)外部不能修改 Value 值

4.枚舉項(xiàng)可以用來(lái)比較,使用 ==,或者 is

5.枚舉類(lèi)中的 Key 不能相同,Value 可以相同,但是 Value 相同的各項(xiàng) Key 都會(huì)當(dāng)做別名

6.枚舉類(lèi)可以用 for 進(jìn)行遍歷,members.items() 可以遍歷出含有別名的類(lèi)

7.如果要枚舉類(lèi)中的 key 也不能相同,需要導(dǎo)入 unique 對(duì)枚舉類(lèi)進(jìn)行裝飾

到此這篇關(guān)于Python深入淺出分析enum枚舉類(lèi)的文章就介紹到這了,更多相關(guān)Python枚舉類(lèi)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實(shí)現(xiàn)矩陣轉(zhuǎn)置的幾種方法詳解

    Python實(shí)現(xiàn)矩陣轉(zhuǎn)置的幾種方法詳解

    這篇文章主要介紹了Python實(shí)現(xiàn)矩陣轉(zhuǎn)置的幾種方法詳解,zip() 函數(shù)用于將可迭代的對(duì)象作為參數(shù),將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回由這些元組組成的對(duì)象,這樣做的好處是節(jié)約了不少的內(nèi)存,需要的朋友可以參考下
    2023-08-08
  • pytorch模型部署 pth轉(zhuǎn)onnx的方法

    pytorch模型部署 pth轉(zhuǎn)onnx的方法

    這篇文章主要介紹了pytorch模型部署 pth轉(zhuǎn)onnx的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • python實(shí)現(xiàn)tree命令的使用示例

    python實(shí)現(xiàn)tree命令的使用示例

    本文主要介紹了python實(shí)現(xiàn)tree命令的使用示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • pandas中fillna()函數(shù)填充N(xiāo)aN和None的實(shí)現(xiàn)

    pandas中fillna()函數(shù)填充N(xiāo)aN和None的實(shí)現(xiàn)

    本文主要介紹了pandas中fillna()函數(shù)填充N(xiāo)aN和None的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • pycharm from lxml import etree標(biāo)紅問(wèn)題及解決

    pycharm from lxml import etree標(biāo)紅問(wèn)題及解決

    這篇文章主要介紹了pycharm from lxml import etree標(biāo)紅問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • python不同版本的_new_不同點(diǎn)總結(jié)

    python不同版本的_new_不同點(diǎn)總結(jié)

    在本篇內(nèi)容里小編給大家整理了一篇關(guān)于python不同版本的_new_不同點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-12-12
  • Python Socket編程之多線程聊天室

    Python Socket編程之多線程聊天室

    這篇文章主要為大家詳細(xì)介紹了Python Socket編程之多線程聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • python csv一些基本操作總結(jié)

    python csv一些基本操作總結(jié)

    今天給大家?guī)?lái)的是關(guān)于Python的相關(guān)知識(shí),文章圍繞著python csv的一些基本操作展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • pygame實(shí)現(xiàn)井字棋之第二步邏輯實(shí)現(xiàn)

    pygame實(shí)現(xiàn)井字棋之第二步邏輯實(shí)現(xiàn)

    這篇文章主要介紹了pygame實(shí)現(xiàn)井字棋之第二步邏輯實(shí)現(xiàn),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • 如何查看Mac本機(jī)的Python3安裝路徑

    如何查看Mac本機(jī)的Python3安裝路徑

    這篇文章主要介紹了如何查看Mac本機(jī)的Python3安裝路徑問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評(píng)論

敦化市| 连云港市| 长沙县| 枝江市| 潜山县| 临湘市| 玛纳斯县| 陆河县| 周口市| 嘉峪关市| 无极县| 昌乐县| 铜山县| 黄石市| 宝坻区| 达拉特旗| 将乐县| 青阳县| 朝阳区| 股票| 大洼县| 阿拉善盟| 武鸣县| 光山县| 同心县| 武威市| 谢通门县| 马鞍山市| 教育| 万年县| 大理市| 乌海市| 石景山区| 汉沽区| 吉安县| 贵州省| 宜宾县| 溧阳市| 佛山市| 阜新市| 扬州市|