相关疑难解决方法(0)

Python枚举,何时何地使用?

Python 3.4.0介绍enum,我已经阅读了doc但仍然不知道它的用法.从我的角度来看,枚举是一种扩展namedtuple类型,可能不是真的.所以这些是我想知道的枚举:

  1. 何时何地使用枚举?
  2. 为什么我们需要枚举?有什么好处?
  3. 什么是枚举?

python enums python-3.4

27
推荐指数
1
解决办法
3585
查看次数

如何将文档字符串放在枚举上?

Python 3.4有一个新的枚举模块和Enum数据类型.如果您还无法切换到3.4,则Enum已被移植.

由于Enum成员支持docstrings,就像所有python对象一样,我想设置它们.有一个简单的方法吗?

enums python-2.7 python-3.x

10
推荐指数
2
解决办法
2656
查看次数

是否可以在枚举中覆盖__new__以将字符串解析为实例?

我想将字符串解析为python枚举.通常会实现一个解析方法来执行此操作.几天前,我发现了__new__方法,该方法能够根据给定的参数返回不同的实例.

这是我的代码,它不起作用:

import enum
class Types(enum.Enum):
  Unknown = 0
  Source = 1
  NetList = 2

  def __new__(cls, value):
    if (value == "src"):  return Types.Source
#    elif (value == "nl"): return Types.NetList
#    else:                 raise Exception()

  def __str__(self):
    if (self == Types.Unknown):     return "??"
    elif (self == Types.Source):    return "src"
    elif (self == Types.NetList):   return "nl"
Run Code Online (Sandbox Code Playgroud)

当我执行我的Python脚本时,我收到以下消息:

[...]
  class Types(enum.Enum):
File "C:\Program Files\Python\Python 3.4.0\lib\enum.py", line 154, in __new__
  enum_member._value_ = member_type(*args)
TypeError: object() takes no parameters
Run Code Online (Sandbox Code Playgroud)

如何返回枚举值的正确实例?

编辑1:

此枚举用于URI解析,特别是用于解析架构.所以我的URI看起来像这样 …

python enums python-3.4

8
推荐指数
3
解决办法
4574
查看次数

标签 统计

enums ×3

python ×2

python-3.4 ×2

python-2.7 ×1

python-3.x ×1