日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python中封装一个枚举_JavaScript可扩展枚举封装

發(fā)布時間:2023/12/19 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中封装一个枚举_JavaScript可扩展枚举封装 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

枚舉結構

通常我們定義的枚舉值:

var SizeEnum = {

SMALL: 1,

MEDIUM: 2,

LARGE: 3,

};

使用var mySize = SizeEnum.SMALL;

如果需要包含其他屬性,我們可以添加額外的對象

var SizeEnum = {

SMALL: 1,

MEDIUM: 2,

LARGE: 3,

properties: {

1: {name: "small", value: 1, code: "S"},

2: {name: "medium", value: 2, code: "M"},

3: {name: "large", value: 3, code: "L"}

}

};

使用:

var mySize = SizeEnum.MEDIUM;

var myCode = SizeEnum.properties[mySize].code; // myCode == "M"

封裝

下面我們進行封裝:

/**

* 枚舉類

*

* @author harris.xc

* @param props [{key: number|string, value: number|string, ...other}]

* 栗子:

* const StepEnum = new Enum([

* { key: 'STEP1', name: '步驟1', value: 1 },

* { key: 'SETP2', name: '步驟2', value: 2 },

* ]);

*

* @class Enum

*

* @method get(value) 通過value獲取當前列的值

* return { key: 'SETP2', name: '步驟2', value: 2 }

*

* @returns {key1: number|string, key2: number|string}

* {

* CREATE: 1,

* APPROVED: 2,

* }

*/

export default class Enum {

/**

* 初始化

* @param {Array} props []

*/

constructor(props = []) {

this.__props = {};

if (props.length) {

props.forEach((element) => {

if (element.key && element.value) {

this[element.key] = element.value;

this.__props[element.value] = element;

} else {

console.error('Enum缺少必要的key或value');

}

});

}

}

/**

* 根據value獲取對象值

* @param {string|number} value 狀態(tài)值

*/

get(value) {

return this.__props[value];

}

/**

* 獲取枚舉數組

*/

getArray() {

const arr = [];

for (const key in this.__props) {

if (Object.prototype.hasOwnProperty.call(this.__props, key)) {

arr.push(this.__props[key]);

}

}

return arr;

}

}

使用方法:

let SizeEnum = new Enum([

{ key: 'STEP1', name: '步驟1', value: 1 },

{ key: 'SETP2', name: '步驟2', value: 2 }

]);

SizeEnum.STEP1; // 1

SizeEnum.get(SizeEnum.STEP1); // { key: 'STEP1', name: '步驟1', value: 1 }

總結

以上是生活随笔為你收集整理的python中封装一个枚举_JavaScript可扩展枚举封装的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。