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

靈活運用Python 枚舉類來實現(xiàn)設計狀態(tài)碼信息

 更新時間:2021年09月29日 16:50:58   作者:憶想不到的暉  
在python中枚舉是一種類(Enum,IntEnum),存放在enum模塊中。枚舉類型可以給一組標簽賦予一組特定的值,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

引言

web 項目中,我們經(jīng)常使用自定義狀態(tài)碼來告知請求方請求結果以及請求狀態(tài);在 Python 中該如何設計自定義的狀態(tài)碼信息呢?

普通類加字典設計狀態(tài)碼

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Author: Hui
# @Desc: { 項目響應碼模塊 }
# @Date: 2021/09/22 23:37


class RETCODE:
    OK                  = "0"
    ERROR               = "-1"
    IMAGECODEERR        = "4001"
    THROTTLINGERR       = "4002"
    NECESSARYPARAMERR   = "4003"
    

err_msg = {
    RETCODE.OK                 : "成功",
    RETCODE.IMAGECODEERR       : "圖形驗證碼錯誤",
    RETCODE.THROTTLINGERR      : "訪問過于頻繁",
    RETCODE.NECESSARYPARAMERR  : "缺少必傳參數(shù)",
}

單獨利用一個字典進行狀態(tài)碼信息對照,這樣設計一旦狀態(tài)碼多了就不好對照,再使用過程中也沒那么方便,簡單試下組織一個成功的信息

data = {
    'code': RETCODE.OK,
    'errmsg': err_msg[RETCODE.OK]
}

巧用枚舉類設計狀態(tài)碼信息

利用枚舉類就可以巧妙的設計狀態(tài)碼信息

枚舉類的定義

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Author: Hui
# @Desc: { 項目枚舉類模塊 }
# @Date: 2021/09/23 23:37

from enum import Enum


class StatusCodeEnum(Enum):
    """狀態(tài)碼枚舉類"""

    OK = (0, '成功')
    ERROR = (-1, '錯誤')
    SERVER_ERR = (500, '服務器異常')

普通的類繼承 enum 模塊中的 Enum 類就變成了枚舉類。

枚舉類的使用

ipython 中測試使用下

In [21]: ok = StatusCodeEnum.OK

In [22]: type(ok)
Out[22]: <enum 'StatusCodeEnum'>

In [23]: error = StatusCodeEnum.ERROR

In [24]: type(error)
Out[24]: <enum 'StatusCodeEnum'>

In [26]: ok.name
Out[26]: 'OK'

In [27]: ok.value
Out[27]: (0, '成功')

In [28]: error.name
Out[28]: 'ERROR'

In [29]: error.value
Out[29]: (-1, '錯誤')

枚舉類中的每一個屬性都返回一個枚舉對象,其中枚舉對象有兩個重要的屬性 name, value

  • name 枚舉對象在枚舉類中的屬性名
  • value 則是枚舉對象在枚舉類中對應屬性名的值
# StatusCodeEnum.OK ->
#    name     value
#	'OK'   (200, '成功')

# StatusCodeEnum.ERROR ->
#    name       value
#	'ERROR'   (-1, '錯誤')

用枚舉類組組織一個成功的響應信息

code = StatusCodeEnum.OK.value[0]
errmsg = StatusCodeEnum.OK.value[1]
data = {
    'code': code,
    'errmsg': errmsg
}

咋一看雖然狀態(tài)碼信息一一對照了,也很簡潔,但使用起來還是有點麻煩,還有一點就是

StatusCodeEnum.OK.value[0] 這樣的語法不能立馬見名知義。因此還需對枚舉類進行封裝

封裝枚舉類

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Author: Hui
# @Desc: { 項目枚舉類模塊 }
# @Date: 2021/09/23 23:37

from enum import Enum


class StatusCodeEnum(Enum):
    """狀態(tài)碼枚舉類"""

    OK = (0, '成功')
    ERROR = (-1, '錯誤')
    SERVER_ERR = (500, '服務器異常')

    @property
    def code(self):
        """獲取狀態(tài)碼"""
        return self.value[0]

    @property
    def errmsg(self):
        """獲取狀態(tài)碼信息"""
        return self.value[1]

通過 @property 裝飾器把類型的方法當屬性使用,由于 枚舉類.屬性名 對應著不同的枚舉對象就很好的把狀態(tài)碼和信息進行了封裝??纯赐獠空{(diào)用的結果

In [32]: StatusCodeEnum.OK.code
Out[32]: 0

In [33]: StatusCodeEnum.OK.errmsg
Out[33]: '成功'

In [34]: StatusCodeEnum.ERROR.code
Out[34]: -1

In [35]: StatusCodeEnum.ERROR.errmsg
Out[35]: '錯誤'

具體 @property 裝飾器的使用詳解,可以移步到 Python中property的使用技巧

繼續(xù)模擬組織響應數(shù)據(jù)

data = {
    'code': StatusCodeEnum.OK.code,
    'errmsg': StatusCodeEnum.OK.errmsg
}

這下終于可以接受了。

狀態(tài)碼信息枚舉類

分享一波我平時用的狀態(tài)碼信息枚舉類,供大家參考參考。

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Author: Hui
# @Desc: { 項目枚舉類模塊 }
# @Date: 2021/09/23 23:37

from enum import Enum


class StatusCodeEnum(Enum):
    """狀態(tài)碼枚舉類"""

    OK = (0, '成功')
    ERROR = (-1, '錯誤')
    SERVER_ERR = (500, '服務器異常')

    IMAGE_CODE_ERR = (4001, '圖形驗證碼錯誤')
    THROTTLING_ERR = (4002, '訪問過于頻繁')
    NECESSARY_PARAM_ERR = (4003, '缺少必傳參數(shù)')
    USER_ERR = (4004, '用戶名錯誤')
    PWD_ERR = (4005, '密碼錯誤')
    CPWD_ERR = (4006, '密碼不一致')
    MOBILE_ERR = (4007, '手機號錯誤')
    SMS_CODE_ERR = (4008, '短信驗證碼有誤')
    ALLOW_ERR = (4009, '未勾選協(xié)議')
    SESSION_ERR = (4010, '用戶未登錄')

    DB_ERR = (5000, '數(shù)據(jù)錯誤')
    EMAIL_ERR = (5001, '郵箱錯誤')
    TEL_ERR = (5002, '固定電話錯誤')
    NODATA_ERR = (5003, '無數(shù)據(jù)')
    NEW_PWD_ERR = (5004, '新密碼錯誤')
    OPENID_ERR = (5005, '無效的openid')
    PARAM_ERR = (5006, '參數(shù)錯誤')
    STOCK_ERR = (5007, '庫存不足')

    @property
    def code(self):
        """獲取狀態(tài)碼"""
        return self.value[0]

    @property
    def errmsg(self):
        """獲取狀態(tài)碼信息"""
        return self.value[1]

尾語

✍ 用 Code 譜寫世界,讓生活更有趣。❤️

✍ 萬水千山總是情,點贊再走行不行。❤️

✍ 碼字不易,還望各位大俠多多支持。❤️

到此這篇關于靈活運用Python 枚舉類來實現(xiàn)設計狀態(tài)碼信息的文章就介紹到這了,更多相關Python 枚舉類 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python實現(xiàn)平行坐標圖的兩種方法小結

    Python實現(xiàn)平行坐標圖的兩種方法小結

    今天小編就為大家分享一篇Python實現(xiàn)平行坐標圖的兩種方法小結,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python 存儲字符串時節(jié)省空間的方法

    Python 存儲字符串時節(jié)省空間的方法

    這篇文章主要介紹了Python 存儲字符串時節(jié)省空間的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • Python?pickle?二進制序列化和反序列化及數(shù)據(jù)持久化詳解

    Python?pickle?二進制序列化和反序列化及數(shù)據(jù)持久化詳解

    這篇文章主要介紹了Python?pickle?二進制序列化和反序列化?-?數(shù)據(jù)持久化,模塊?pickle?實現(xiàn)了對一個?Python?對象結構的二進制序列化和反序列化,本文介紹了Pickle的基本用法,需要的朋友可以參考下
    2024-01-01
  • Pygame實戰(zhàn)練習之推箱子游戲

    Pygame實戰(zhàn)練習之推箱子游戲

    推箱子想必是很多人童年時期的經(jīng)典游戲,我們依舊能記得抱個老人機娛樂的場景,下面這篇文章主要給大家介紹了關于如何利用python寫一個簡單的推箱子小游戲的相關資料,需要的朋友可以參考下
    2021-09-09
  • pandas?dataframe按照列名給列排序三種方法

    pandas?dataframe按照列名給列排序三種方法

    這篇文章主要給大家介紹了關于pandas?dataframe按照列名給列排序的三種方法,在進行數(shù)據(jù)分析操作時,經(jīng)常需要對數(shù)據(jù)按照某行某列排序,或者按照多行多列排序,以及按照索引值排序等等,需要的朋友可以參考下
    2023-07-07
  • Python線程指南分享

    Python線程指南分享

    今天小編就為大家?guī)鞵ython線程指南分享,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python打包文件執(zhí)行報錯:ModuleNotFoundError: No module named ‘pymssql‘的解決方法

    Python打包文件執(zhí)行報錯:ModuleNotFoundError: No module 

    這篇文章給大家介紹了Python打包文件執(zhí)行報錯:ModuleNotFoundError: No module named ‘pymssql‘的解決方法,如果有遇到相同問題的朋友可以參考閱讀一下本文
    2023-10-10
  • Python中pandas groupby()用法案例詳解

    Python中pandas groupby()用法案例詳解

    groupby()函數(shù)是pandas庫中一個非常強大的工具,它允許我們按照一個或多個特征對數(shù)據(jù)進行分組,并對每個組進行聚合、轉換和過濾操作,本文將探討pandas庫中非常強大的groupby()函數(shù),感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • Python實現(xiàn)對相同數(shù)據(jù)分箱的小技巧分享

    Python實現(xiàn)對相同數(shù)據(jù)分箱的小技巧分享

    這篇文章主要給大家介紹了關于Python實現(xiàn)對相同數(shù)據(jù)分箱的小技巧,文中通過實例代碼介紹的非常詳細,對大家學習或者使用python具有一定的參考學習價值,需要的朋友可以參考下
    2022-01-01
  • 使用pandas讀取表格數(shù)據(jù)并進行單行數(shù)據(jù)拼接的詳細教程

    使用pandas讀取表格數(shù)據(jù)并進行單行數(shù)據(jù)拼接的詳細教程

    這篇文章主要介紹了使用pandas讀取表格數(shù)據(jù)并進行單行數(shù)據(jù)拼接的詳細教程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03

最新評論

韩城市| 拉孜县| 壤塘县| 西城区| 巍山| 昌邑市| 来安县| 华蓥市| 台南市| 故城县| 南康市| 岗巴县| 常山县| 昌邑市| 科尔| 连平县| 北碚区| 武山县| 嘉义市| 大冶市| 德安县| 津南区| 炉霍县| 黎川县| 潞西市| 漾濞| 石嘴山市| 墨玉县| 绍兴县| 吉林省| 锦屏县| 崇左市| 凤庆县| 社会| 垦利县| 肥乡县| 万宁市| 大港区| 禹城市| 石狮市| 逊克县|