当前位置:  开发笔记 > 编程语言 > 正文

有没有更好的方法在Python中获得一系列命名常量(枚举)?

如何解决《有没有更好的方法在Python中获得一系列命名常量(枚举)?》经验,为你挑选了1个好方法。

只是看看在python中获取命名常量的方法.

class constant_list:
    (A_CONSTANT, B_CONSTANT, C_CONSTANT) = range(3)

那么当然你可以像这样引用它:

constant_list.A_CONSTANT

我想你可以使用字典,使用字符串:

constant_dic = {
    "A_CONSTANT" : 1,
    "B_CONSTANT" : 2,
    "C_CONSTANT" : 3,}

并像这样引用它:

constant_dic["A_CONSTANT"]

那么,我的问题很简单.有没有更好的方法呢?不是说这些不足或什么,只是好奇 - 我错过了任何其他常见的习语吗?

提前致谢.



1> Tomalak..:

对于2.3或之后:

class Enumerate(object):
  def __init__(self, names):
    for number, name in enumerate(names.split()):
      setattr(self, name, number)

使用:

 codes = Enumerate('FOO BAR BAZ')

codes.BAZ 将是2,依此类推.

如果您只有2.2,则在此前面加上:

 from __future__ import generators

 def enumerate(iterable):
   number = 0
   for name in iterable:
     yield number, name
     number += 1

(这是从这里取的)


你从object继承来创建一个新式的类.
推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有