python 在Python 3.4中创建新的Enum类(向后移植为'enum34')具有可打印的表示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 在Python 3.4中创建新的Enum类(向后移植为'enum34')具有可打印的表示相关的知识,希望对你有一定的参考价值。

# -*- encoding: utf-8 -*-
from __future__ import print_function

from enum import Enum


class PrintableValue(object):
    def __init__(self, value, printable_name):
        self.value = value
        self.printable_name = printable_name


class EnumWithName(Enum):

    def __new__(cls, value):
        obj = object.__new__(cls)
        obj._value_ = value.value
        obj.printable_name = value.printable_name
        return obj


class Country(EnumWithName):
    AU = PrintableValue('AU', 'Australia')
    US = PrintableValue('US', 'United States of America')
    CA = PrintableValue('CA', 'Canada')


us = Country('US')

print('Enum name:', us.name)
print('Enum value:', us.value)
print('Printable name:', us.printable_name)


print("US == US:", Country('US') == us)

print("US == CA:", Country('US') == Country('CA'))

以上是关于python 在Python 3.4中创建新的Enum类(向后移植为'enum34')具有可打印的表示的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中创建新的未知或动态/扩展对象

python 用于在python中创建新目录并向其写入文件的小脚本。

如何使用 python API 在 bigquery 中创建新视图?

如何使用 scala/python/spark 在 CSV 文件中创建新的时间戳(分钟)列

我无法在 python 中的数据系列中创建新列,以便对 hasrsine 公式进行赋值

如何在 python+numpy/pandas 中使用二值化在 json 文件中创建新列